using System;
using System.Windows;
using System.Windows.Controls;
namespace Controls
{
///
/// Selects the right template on base of value-type.
///
public class PropertyDataTemplateSelector : DataTemplateSelector
{
///
/// Default data template. (currently Textbox)
///
public DataTemplate? DefaultDataTemplate { private get; set; }
///
/// Data template for boolean. (currently Checkbox)
///
public DataTemplate? BooleanDataTemplate { private get; set; }
///
/// Data template for enums. (currently Combobox)
///
public DataTemplate? EnumComboBoxDataTemplate { private get; set; }
///
public override DataTemplate? SelectTemplate(object item, DependencyObject container)
{
return item switch
{
bool _ => BooleanDataTemplate,
Enum _ => EnumComboBoxDataTemplate,
UIElement _ => null,
_ => DefaultDataTemplate
};
}
}
}