以下のようなオブジェクトモデルがあります。
public class ViewModel
{
public List<Group> Groups{ get; set; }
}
public class Group
{
public string Name { get; set; }
public List<Contact> Contacts { get; set; }
}
public class Contact
{
public string Name { get; set; }
public bool IsOnline { get; set; }
}
そして、次のようにグループをアイテムコントロールにバインドしています:
<ItemsControl ItemsSource="{Binding Path=Groups}"
ItemTemplate="{StaticResource GroupTemplate}" >
</ItemsControl>
それらをレンダリングするためのデータテンプレートがあります。
<DataTemplate x:Key="GroupTemplate" DataType="{x:Type Group}">
</DataTemplate>
<DataTemplate x:Key="ContactTemplate" DataType="{x:Type Contact}">
<StackPanel>
<TextBlock Text="{Binding Name}"/>
</StackPanle>
</DataTemplate>
項目コントロール内に連絡先を表示するにはどうすればよいですか? 連絡先は各グループ内のコレクションであり、ビューモデルにはグループのコレクションがあります。さらに複雑にするために、連絡先ごとに異なるデータ テンプレートがあり、適切な連絡先テンプレートを選択するために datatemplateselector を使用する必要があります。また、グループ テンプレートには表示するものがなく、連絡先のみを表示する必要があることに注意してください。
ありがとう -マイク