Files
Lattice/Lattice.UI.Docking.WinUI/Converters/DockTemplateSelector.cs
2026-01-18 16:33:35 +03:00

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)
};
}
}