[英]How to apply Different Data template for each group in ListView
Is there anyway to apply different data template for each group in listview , I can able to do HeaderTemplateSelector but how to do GroupTemplateSelector . 无论如何,有没有为列表视图中的每个组应用不同的数据模板,我可以执行HeaderTemplateSelector,但如何执行GroupTemplateSelector。
Below code i done for HeaderTemplateSelector for group 我为组的HeaderTemplateSelector完成的以下代码
<DataTemplate x:Key="Template1">
<StackPanel Margin="0.5">
<TextBlock Text="{Binding Path=Key}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="Template2">
<StackPanel Margin="10">
<TextBlock Text="{Binding Path=Key}" />
</StackPanel>
</DataTemplate>
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplateSelector>
<local:GroupTemplateSelector Template1="{StaticResource Template1}"
Template2="{StaticResource Template2}" />
</GroupStyle.HeaderTemplateSelector>
</GroupStyle>
</ListView.GroupStyle>
C# C#
public class GroupTemplateSelector : DataTemplateSelector
{
public DataTemplate Template1 { get; set; }
public DataTemplate Template2 { get; set; }
protected override DataTemplate SelectTemplateCore(
object item,
DependencyObject container)
{
if (item != null)
{
var group = item as IGrouping<string, MyClass>;
switch (group.Key)
{
case "No":
return Template1;
case "Yes":
return Template2;
}
}
return base.SelectTemplate(item, container);
}
}
How to do different selector for Group content? 如何为组内容选择不同的选择器?
You could just implement a ListView.ItemTemplateSelector
and in its SelectTemplateCore
take the MyClass
instance and check which group does it belong to and select the template accordingly. 您可以只实现一个
ListView.ItemTemplateSelector
并在其SelectTemplateCore
获取MyClass
实例并检查它属于哪个组,然后相应地选择模板。 To get the best performance, it would be best if MyClass
had a quick way (eg a property) by which you could tell the group. 为了获得最佳性能,最好是
MyClass
有一种快速的方法(例如,一个属性)来告诉小组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.