バインドされたデータのプロパティに応じて異なる DataTemplate を表示するリストボックスを実装したいと考えています。
Notification
アイテムごとに個別のクラスを持つのではなく、保持しているデータのみに依存するさまざまな種類の通知を保持できるというクラスがあります。
public class Notification : Interfaces.IListable
{
Cache.NotificationType _type;
public Cache.NotificationType Type
{
get {return _type;}
set
{
switch (value)
{
case Cache.NotificationType.DocumentAnnouncment:
this.FriendlyType = "Document Announcment";
break;
case Cache.NotificationType.DocumentComment:
this.FriendlyType = "Document Comment";
break;
case Cache.NotificationType.FileTransfer:
this.FriendlyType = "File Transfer Progress";
break;
case Cache.NotificationType.GeneralAnnouncment:
this.FriendlyType = "Special Announcment";
break;
case Cache.NotificationType.MeetingAnnouncment:
this.FriendlyType = "Meeting Announcment";
break;
case Cache.NotificationType.MeetingComment:
this.FriendlyType = "Meeting Comment";
break;
}
_type = value;
}
}
ここでの主なアイデアは、FriendlyType
プロパティが何であるかに応じて、異なるデータ テンプレートが必要だということです。
したがって、将来の読みやすさのために、質問をより具体的に言い直します。
表示されているリストボックスに応じて、リスト ボックスに異なるデータ テンプレートを実装するにはどうすればよいNotification.FriendlyType
ですか?