我目前正在开发一个使用 MVVM 模式的项目,但在任何地方都找不到如何将 ObservableCollection 绑定(bind)到 TabControl 的解决方案,该 TabControl 有一个项目的模板。
例如,这是我到目前为止的地方:
<TabControl ItemsSource="{Binding ConnStringBufferOC}">
<TabControl.ItemTemplate>
<DataTemplate>
<Grid>
<TextBox Text="{Binding Username}"/>
<!-- Controls here -->
</Grid>
</DataTemplate>
</TabContro.ItemTemplate>
</TabControl>
然而,这只是部分有效。它在选项卡标题区域而不是选项卡内容区域中创建控件。我想将每个项目绑定(bind)到一个新选项卡,该选项卡具有来自 OC 的绑定(bind)源的标题,例如:
Header="{Binding Name}"
在每个选项卡的内容区域中,我希望有控件,这些控件在此示例 ConnStringBufferOC 中具有从 ObservableCollection 绑定(bind)的内容。所以每个选项卡都有相同的控件,只是绑定(bind)到控件的内容不同。
最佳答案
您需要指定 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>
关于wpf - 绑定(bind)到 ObservableCollection MVVM 的 TabControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704766/