如何将WPF TabControl ContentTemplate绑定到不同ViewModel的可观察集合

约翰尼斯

我知道这个问题已经被问过并回答过几次了,但我还是不明白。我似乎缺少某种了解。

我有一个TabControl绑定到一个可观察的viewmodel列表。当然,视图模型可以是不同的类型,它们是从相同的基本类型派生的。当将视图模型添加到列表中时,我希望tabcontrol根据视图模型的类型添加一个新的选项卡页。

我不明白如何设置TabControl的ContentTemplate来根据视图模型的类型选择正确的视图。

可以在这里找到一个基本示例,但是我没有使用动态视图来启动它并运行它:

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

谢谢!约翰尼斯

纳乔

好的,我将在您链接的答案中修改示例代码:

<Window.Resources>
    <DataTemplate x:Key="templateForTheHeader" DataType="{x:Type vm:BaseViewModel}">
        <TextBlock Text="{Binding CommonPropertyToDisplayInTheHeader}"/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type vm:ViewModel1}">
        <TextBlock Text="{Binding PropertyInVM1}"/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type vm:ViewModel2}">
        <TextBlock Text="{Binding PropertyInVM2}"/>
    </DataTemplate>
</Window.Resources>

...

<TabControl ItemsSource="{Binding YourCollection}"
            ItemTemplate="{StaticResource templateForTheHeader}">
</TabControl>

标头显示基本VM类中的某些属性。重要的是,我删除了x:key其他DataTemplates,这将使它应用于不需要的地方)DataTypeWindow例如)中找到的定义的每个实例ContentTemplateTabControl

YourCollection为对象的混合,每个将获得它的模板应用了基于它的类型,如果DataTemplate有匹配的DataType存在。简单吧?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将视图模型的集合绑定到WPF MVVM TabControl

WPF 将 TabControl 项内容绑定到不同的数据模板

TabControl WPF中的TabControl

在WPF TabControl上将DataTables绑定到Datagrids

wpf 帮助将数据绑定到 TabControl 中的控件

如何将 WPF TabControl 标头与右侧对齐?

如何将TabControl内容的数据上下文绑定到ObservableCollection中的视图模型的实例

如何将ListboxItem绑定为WPF中的可观察集合,并在顶部插入新记录

刷新WPF Datagrid是否不绑定到可观察的集合?

如何将数据模板绑定到可观察的集合,以便它们都可以显示?

在TabControl WPF问题中异步绑定到SelectedItem

WPF:TabControl.ItemTemplate和TabItem.ContentTemplate之间的区别

将一个按钮绑定到每个在TabControl中的3个不同的DataGrid

如何将ngclass绑定到可观察值

WPF将datagrid绑定到字符串可观察的集合

如何将枚举ItemsControl绑定到WPF中的集合?

Observable集合到Tabcontrol绑定

如何将Windows窗体面板添加到Wpf TabControl

如何将ListView中每个按钮的图像源绑定到可观察集合中的单个项目?

使用TabControl和MVVM在WPF中进行正确的数据绑定

在Elmish.WPF(F#)中,如何编写绑定来支持另一个具有不同模型的tabcontrol中的tabcontrol?

MahApps TabControl 绑定

如何在WPF中绑定可观察集合的总和

如何从TabControl隐藏TabPage

嵌入式Winform图表可以绑定到WPF中的可观察集合吗?

WPF双向数据绑定到可观察集合中的自定义数据类型

如何使用 Caliburn.Micro 和不同的 UserControl 制作 TabControl

将 UITableViewCell 中的 UIButton 点击手势绑定到 viewModel 中的可观察对象

如何将TabControl标头的文本向左对齐?