【发布时间】:2017-02-10 15:04:29
【问题描述】:
我想创建一个 TabControl,其中 TabItem 将在运行时动态创建。 TabItem 应该与 ViewModel 相关联。这个视图模型支持一个知道如何在 TabItem 内创建内容的接口。所以基本上 TabItems 可以在运行时接受视图模型决定的任何内容控制。我尝试了使用 TabControl.ContentTemplate 或 ControlTemplate 和 ItemTemplate 的不同方法,但它们都不起作用。似乎模板方法需要在设计时知道 TabItem 内内容的类型才能呈现自己。与关联数据上下文中的属性的绑定工作正常,但不显示内容控件。 我们能否只派生一个新类 MyTabItem:TabItem 并创建自定义内容并将其与 MyTabItem 的内容相关联。 需要任何可以允许视图模型创建 TabItems 内容的通用方法。
【问题讨论】:
-
ok.. 我可以派生我的 CustomTabItem:TabItem 并通过传入视图模型在构造函数中创建其内容。 ViewModel 创建内容元素并将其分配给 tabitem 的内容。这种方法的优缺点是什么。我在stackoverflow上看不到这种方法的任何答案。允许 viewModel 创建 tabItems 内容似乎是一个非常标准的问题。
标签: wpf data-binding viewmodel tabcontrol tabitem