wpf - 绑定(bind)到 ObservableCollection MVVM 的 TabControl

标签 wpf xaml mvvm binding tabcontrol

我目前正在开发一个使用 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/

相关文章:

ios - subview 模型的计算属性不会更新父 View 模型的 @ObservedObject

c# - WPF MVVM CanExecute方法实现问题

c# - 实现Finalize和Dispose的正确方法(当父类实现IDisposable时)

wpf - 如何离散动画 GridLength 从 "Auto"到 "*"?

xaml - Windows 8 中的 wp7 枢轴控制等效项是什么?

c# - 如何从代码隐藏访问用于填充 XAML 类的 DataContext 的属性/方法?

mvvm - Datagrid 未更新,datagridtextcolumn 上的 Visibility 属性

wpf - 如何在调整窗口大小时调整 ListView 控件的大小

c# - WPF DataGrid 中的文本对齐方式

c# - 在运行时调整元素大小和分割布局