0

アイテムのコレクションがいくつかあります。すべてのアイテムは同じタイプです:

public class ItemType 
{
   public string Name {get;set;}
}

一部のアイテムは「お気に入り」です。それらは同じですが、私はそれらを別のコレクションに保存します。私はアイテムクラスのグループを持っています:

public class ItemsGroup 
{
   public List<ItemType> Items {get;set;}
   public string Title {get;set;}
}

したがって、一部のアイテムは1つのグループに含まれ、一部のアイテムは「お気に入り」グループに含まれます。(タイトル="お気に入り"。

また、。のあるページがあり<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 ect)であるため、ItemTypeにフィールドを追加したくありません。

同様の質問を見ましたが、同じ問題があります。

グループごとにデータテンプレートを選択する方法はありますか?

4

0 に答える 0