如何将TabControl的项绑定到wpf中的可观察集合?

时间:2009-08-11 15:27:10

标签: wpf data-binding mvvm tabcontrol observablecollection

将TabControl的项绑定到ObservableCollection的最简单示例是什么?

每个标签的内容都有唯一的数据,实际上这些数据会将自己的observableCollections绑定到项目组件。

目前我有一个用户控件,我想在创建后立即将其设置为每个选项卡的内容。我还需要在创建选项卡时动态设置此新用户控件的datacontext。所以,基本上,我希望tabcontrol的observablecollection包含映射到每个选项卡中数据的模型视图。

最重要的是,我需要在不违反WPF中的MVVM的情况下完成所有这些操作!有什么帮助吗?

非常感谢!

1 个答案:

答案 0 :(得分:37)

基本示例:

<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>