Одна из основных целей / преимуществ MVVM заключается в том, что вы не создаете объекты пользовательского интерфейса WPF в коде.
Вы должны заполнить коллекцию объектов модели представления и привязать к ней ItemsSource
из TabControl
, который вы определили в XAML. У вас должно быть DataTemplate
, определенное для типа данных этих объектов, и поместите туда их XAML вместо загрузки во время выполнения.
TabControl
немного сложнее, потому что он использует два шаблона: ItemTemplate
используется для определения внешнего вида вкладки, а ContentTemplate
используется для определения внешнего вида содержание элементов вкладки. Довольно часто можно увидеть это:
<TabControl ItemsSource="{Binding MyItems}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
, который заполняет вкладку свойством Text
в модели представления, а содержимое элемента вкладки с любым шаблоном в словаре ресурсов соответствует типу модели представления.