我收到了一些物品。所有项目都具有相同的类型:
public class ItemType
{
public string Name {get;set;}
}
有些项目是“收藏夹”。它们是相同的,但我将它们存储在一个单独的集合中。 我有一个项目类:
public class ItemsGroup
{
public List<ItemType> Items {get;set;}
public string Title {get;set;}
}
因此,有些项目在一个组中,有些项目在“收藏夹”组中。 (Title =“Favorives”。
另外,我有一个<GridView>
的页面。我想根据组设置不同的数据。 (例如BigItem和SmallItem)。我可以通过向ItemType
添加额外字段来实现这一目标:
public enum GroupType { Fav, Other; }
public class ItemType
{
public string Name {get;set;}
public GroupType Type {get; set;}
}
并在DataTemplateSelector
类
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
var x = item as ItemType;
if(x != null)
{
if(x.Type == GroupType.Fav) return FavDataTemplate;
}
return DefaultDataTemplate;
}
但我不想为ItemType添加额外的字段,因为它是一个共享类(wp7,winrt等)。
我看到了类似的question,但我遇到了同样的问题。
有没有办法按组选择数据模板?