Files
aistudio-wpf-diagram/Others/Dragablz/DragablzDemo/BoundExampleModel.cs
2023-04-16 20:11:40 +08:00

93 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Security.RightsManagement;
using System.Text;
using System.Threading.Tasks;
using Dragablz;
using Dragablz.Dockablz;
using DragablzDemo.Annotations;
namespace DragablzDemo
{
public class BoundExampleModel
{
private readonly IInterTabClient _interTabClient = new BoundExampleInterTabClient();
private readonly ObservableCollection<HeaderedItemViewModel> _items;
private readonly ObservableCollection<HeaderedItemViewModel> _toolItems = new ObservableCollection<HeaderedItemViewModel>();
public BoundExampleModel()
{
_items = new ObservableCollection<HeaderedItemViewModel>();
}
public BoundExampleModel(params HeaderedItemViewModel[] items)
{
_items = new ObservableCollection<HeaderedItemViewModel>(items);
}
public ObservableCollection<HeaderedItemViewModel> Items
{
get { return _items; }
}
public static Guid TabPartition
{
get { return new Guid("2AE89D18-F236-4D20-9605-6C03319038E6"); }
}
public IInterTabClient InterTabClient
{
get { return _interTabClient; }
}
public ObservableCollection<HeaderedItemViewModel> ToolItems
{
get { return _toolItems; }
}
public ItemActionCallback ClosingTabItemHandler
{
get { return ClosingTabItemHandlerImpl; }
}
/// <summary>
/// Callback to handle tab closing.
/// </summary>
private static void ClosingTabItemHandlerImpl(ItemActionCallbackArgs<TabablzControl> args)
{
//in here you can dispose stuff or cancel the close
//here's your view model:
var viewModel = args.DragablzItem.DataContext as HeaderedItemViewModel;
Debug.Assert(viewModel != null);
//here's how you can cancel stuff:
//args.Cancel();
}
public ClosingFloatingItemCallback ClosingFloatingItemHandler
{
get { return ClosingFloatingItemHandlerImpl; }
}
/// <summary>
/// Callback to handle floating toolbar/MDI window closing.
/// </summary>
private static void ClosingFloatingItemHandlerImpl(ItemActionCallbackArgs<Layout> args)
{
//in here you can dispose stuff or cancel the close
//here's your view model:
var disposable = args.DragablzItem.DataContext as IDisposable;
if (disposable != null)
disposable.Dispose();
//here's how you can cancel stuff:
//args.Cancel();
}
}
}