JD2022-TU1/main/tools/framework/JD.WPF/Controls/FrameworkToolBarTemplateSelector.cs

43 lines
1.4 KiB
C#

using System.Windows;
using System.Windows.Controls;
using JD.Core;
using JD.WPF.Models.Menus;
namespace JD.WPF.Controls
{
public class FrameworkToolBarTemplateSelector : DataTemplateSelector
{
public DataTemplate ButtonTemplate { get; set; }
public DataTemplate ToggleButtonTemplate { get; set; }
public DataTemplate SeparatorTemplate { get; set; }
public DataTemplate ErrorTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (!(item is MenuItemData))
{
CodeHelper.DebugBreak("This template selector can only use MenuItemData items. ");
return ErrorTemplate;
}
MenuItemData menuData = (MenuItemData)item;
if (menuData.IsSeparator)
{
return SeparatorTemplate;
}
else if (menuData.IsCheckable)
{
return ToggleButtonTemplate;
}
else
{
if (menuData.Command == null)
{
CodeHelper.DebugBreak("Using a Button template on a item data without command. This button will be useless. ");
return ErrorTemplate;
}
return ButtonTemplate;
}
}
}
}