我正在设计WPF应用程序并具有以下ViewModel:
我计划使用包含Window
的多个Tabs
的{{1}}进行表示。
以下是它的外观:
在我的Items
:
MainWindow.xaml
我计划将ViewModel绑定到View UIElements,如下所示:
这是我无法弄清楚的问题......
选项卡需要是动态的(可以由用户添加/删除)。
为了实现这一目标,我遵循了CodeProject.com上的教程:Add/Remove Tabs Dynamically in WPF。
在此代码中,<Window.DataContext>
<viewModel:ProjectViewModel/>
</Window.DataContext>
设置为TabItems列表,其中包含根据用户操作添加/删除的项目。
但是,如果我将TabControl.DataContext绑定到TabItems列表,我不会失去将它绑定到GroupViewModel的能力吗?
有没有办法将它绑定到两者?
遵循MVVM模式,不是UIElement的DataContext应该绑定到ViewModel,而不是绑定到另一个UIElement。
有没有办法可以按照我的计划将ViewModel绑定到View UIElements并仍然执行动态标签?
非常感谢您的任何想法或建议。
菲利普
答案 0 :(得分:3)
没有必要将每个嵌套集合绑定到可视树的嵌套元素。 DataContext
依赖项属性通过该树继承。
<Window.DataContext>
<viewModel:ProjectViewModel/>
</Window.DataContext>
<TabControl
ItemsSource="{Binding GroupViewModels}">
....