根据组在GridView中选择DataTempate

时间:2012-08-28 08:27:10

标签: c# windows-runtime datatemplate

我收到了一些物品。所有项目都具有相同的类型:

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,但我遇到了同样的问题。

有没有办法按组选择数据模板?

0 个答案:

没有答案