WPF 模板选择器


模板选择器:根据内容可以自定义调用不同的模板

//模板选择器类

public class PersonDataTemplateSelector : DataTemplateSelector
{
public DataTemplate NormalTemplate { get; set; }
public DataTemplate HightlightTemplate { get; set; }
public int MinAge { get; set; }
public int MaxAge { get; set; }
public string PropName { get; set; }
public string NameValue { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
Person person = item as Person;

var result = person.GetType().GetProperty(PropName).GetValue(person);
//if (person.Age > MinAge && person.Age <= MaxAge)
//{
// return HightlightTemplate;
//}
if (result.ToString() == NameValue)
{
return HightlightTemplate;
}

return NormalTemplate;
}
}

//调用模板选择器类



HightlightTemplate="{StaticResource highlightDt}"
MinAge="28" MaxAge="30"
PropName="Name" NameValue="Ace"/>

WPF