28 lines
931 B
C#
28 lines
931 B
C#
using Lattice.Core.Docking.Models;
|
|
using Microsoft.UI.Xaml;
|
|
using Microsoft.UI.Xaml.Controls;
|
|
|
|
namespace Lattice.UI.Docking.WinUI.Converters;
|
|
|
|
/// <summary>
|
|
/// Выбирает визуальный шаблон для узла дерева макета.
|
|
/// </summary>
|
|
public class DockTemplateSelector : DataTemplateSelector
|
|
{
|
|
/// <summary> Шаблон для узлов-разделителей (DockGroup). </summary>
|
|
public DataTemplate? GroupTemplate { get; set; }
|
|
|
|
/// <summary> Шаблон для контейнеров вкладок (DockLeaf). </summary>
|
|
public DataTemplate? LeafTemplate { get; set; }
|
|
|
|
protected override DataTemplate? SelectTemplateCore(object item, DependencyObject container)
|
|
{
|
|
return item switch
|
|
{
|
|
DockGroup => GroupTemplate,
|
|
DockLeaf => LeafTemplate,
|
|
_ => base.SelectTemplateCore(item, container)
|
|
};
|
|
}
|
|
}
|