我目前正在使用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绑定的内容。因此,每个选项卡都有相同的控件,只有绑定到控件的内容才不同。
答案 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>