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;
}
}

//调用模板选择器类

<ListView ItemsSource="{DynamicResource array}">
<ListView.ItemTemplateSelector>
<local:PersonDataTemplateSelector NormalTemplate="{StaticResource normalDt}"
HightlightTemplate="{StaticResource highlightDt}"
MinAge="28" MaxAge="30"
PropName="Name" NameValue="Ace"/>
</ListView.ItemTemplateSelector>
</ListView>

 

posted @ 2021-11-18 17:02  zyl2  阅读(251)  评论(0)    收藏  举报