using System.Windows; using System.Windows.Controls; namespace Dominion.NET_WPF { public class ObjectTemplateSelector : DataTemplateSelector { public DataTemplate StringTemplate { get; set; } public DataTemplate BooleanTemplate { get; set; } public DataTemplate IntTemplate { get; set; } public DataTemplate ConstraintTemplate { get; set; } public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (!(item is DominionBase.Cards.CardSetting)) return StringTemplate; var objectValue = ((DominionBase.Cards.CardSetting)item).Value; if (objectValue is string) return StringTemplate; if (objectValue is bool) return BooleanTemplate; if (objectValue is int) return IntTemplate; if (objectValue is DominionBase.Cards.ConstraintCollection) return ConstraintTemplate; return StringTemplate; } } }