TabControl绑定到ObservableCollection MVVM

时间:2014-02-11 14:35:14

标签: wpf xaml mvvm binding tabcontrol

我目前正在使用MVVM模式开发一个项目,无法在任何地方找到如何将ObservableCollection绑定到TabControl的解决方案,TabControl有一个项目的模板。

例如,这是我到目前为止的地方:

<TabControl ItemsSource="{Binding ConnStringBufferOC}">
            <TabControl.ItemTemplate>
                <DataTemplate>
                <Grid>
                   <TextBox Text="{Binding Username}"/>
                   <!-- Controls here -->
                </Grid>
                </DataTemplate>
            </TabContro.ItemTemplate>
</TabControl>

但这只是部分有效。它在选项卡标题区域而不是选项卡内容区域中创建控件。我想将每个项目绑定到一个新的选项卡,该选项卡具有来自OC的绑定源头,例如:

Header="{Binding Name}"

在每个标签的内容区域中,我想要控件,其中包含从此示例ConnStringBufferOC中的ObservableCollection绑定的内容。因此,每个选项卡都有相同的控件,只有绑定到控件的内容才不同。

1 个答案:

答案 0 :(得分:2)

您需要为标签内容指定ContentTemplate,为标题标题指定ItemTemplate

<TabControl ItemsSource="{Binding ConnStringBufferOC}">
    <TabControl.ContentTemplate>
        <DataTemplate>
            <Grid>
                <TextBox Text="{Binding Username}"/>
                <!-- Controls here -->
            </Grid>
        </DataTemplate>
    </TabControl.ContentTemplate>
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>