43 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|