Сначала создайте три класса: Gesellschaft
, Anschrift
и Email
. Эти классы являются моделями представления; они выставляют любое свойство, значение которого вы хотите видеть в представлении. Заставьте Gesellschaft
выставить свойство Anschriften
типа IEnumerable<Anschrift>
, а Anschrift
выставить свойство Emails
типа IEnumerable<Email>
. (Я просто догадываюсь, что такое множественное число от Anschrift; почти все мои знания немецкого языка получены из настольных игр.)
В вашем XAML создайте три DataTemplate
s, например ::
<DataTemplate DataType="{x:Type local:Gesellschaft}">
<WrapPanel>
<Label>Name</Label>
<TextBlock Text="{Binding Gesellschaftname}"/>
...
<ListBox ItemsSource="{Binding Anschriften}"/>
</WrapPanel>
</DataTemplate>
Очевидно, что вы захотите использовать более разумную компоновку, чем вставлять кучу элементов управления в WrapPanel
; это просто доказательство концепции. DataTemplate
для Anschrift
также должен иметь ListBox
, ItemsSource
которого связан с Emails
.
После того, как вы это сделаете, все, что вам нужно в вашем XAML, это установить DataContext
для ContentPresenter
в экземпляр Gesellschaft
. Он будет обработан с использованием DataTemplate
, который вы определили для этого типа. Его ListBox
будет содержать элемент для каждого Anschrift
, отображаемый с использованием шаблона этого типа. U.s.w.
Поздравляю, теперь вы используете шаблон MVVM, как и все классные дети. Можно узнать намного больше, чем просто это, но это хорошее начало.