Подтвердить что ты не робот

Как связать элементы TabControl с наблюдаемой коллекцией в wpf?

Каков самый простой пример привязки элементов TabControl к ObservableCollection?

Каждое содержимое вкладки будет иметь уникальные данные, и действительно, эти данные будут иметь наблюдаемые значения собственных привязок к компонентам элементов.

В настоящее время у меня есть пользовательский элемент управления, который я хотел бы задать как содержимое каждой вкладки, как только она будет создана. Я также должен динамически устанавливать datacontext этого нового пользовательского элемента управления, когда создается вкладка. Поэтому, по сути, я хотел бы, чтобы tabcontrol observablecollection содержал представления о модели, которые сопоставляются с данными на каждой вкладке.

Кроме того, мне нужно сделать все это без нарушения MVVM в WPF! Любая помощь?

Очень ценно!

4b9b3361

Ответ 1

Основной пример:

<Window.Resources>

    <DataTemplate x:Key="templateForTheContent" DataType="{x:Type vm:TheViewModelType}">
        <v:YourUserControl/>
    </DataTemplate>

    <DataTemplate x:Key="templateForTheHeader" DataType="{x:Type vm:TheViewModelType}">
        <TextBlock Text="{Binding ThePropertyToDisplayInTheHeader}"/>
    </DataTemplate>

</Window.Resources>

...

<TabControl ItemsSource="{Binding YourCollection}"
            ContentTemplate="{StaticResource templateForTheContent}"
            ItemTemplate="{StaticResource templateForTheHeader}">
</TabControl>