アイテムのコレクションがいくつかあります。すべてのアイテムは同じタイプです:
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にフィールドを追加したくありません。
同様の質問を見ましたが、同じ問題があります。
グループごとにデータテンプレートを選択する方法はありますか?