我在WPF中有一个C#项目。我之前和MVC一起工作过,现在我正试图将MVVM与XAML结合使用。
我有多个模型,我有一个带Tabitems的GUI窗口,我有多个ViewModel。 每个标签项都与每个模型相关,因此我为每个模型都有一个ViewModel。
现在我想使用绑定(为什么还要使用WPF / XAML)。如何将按钮绑定到ViewModel X中的命令?
E.g:
我看到很多代码只是绑定到命令的名称,但由于我有多个视图,而不仅仅是1,我该怎么做?我应该创建一个能处理所有其他ViewModel的ViewModel吗?
答案 0 :(得分:1)
我看到很多代码只是绑定到命令的名称,但由于我有多个视图,而不仅仅是1,我该怎么做?
确保您了解绑定系统的工作原理。您绑定到DataContext。因此,如果每个单独的选项卡都有一个单独的DataContext值集,那么您可以使用命令的名称进行绑定。
了解这一点,您可以继续使用您已建立的模式。在我的拙见中,我认为它会变得太复杂。大多数MVVM开发人员正在与View to ViewModel应用一对一的关系(虽然谈论UserControl对象时事情变得棘手)。没有什么是一成不变的,所以最终由你决定如何进行。
答案 1 :(得分:0)
我猜你的视图模型数量有限。所以你有2个选择:第一个是使用DataTemplateSelector,第二个是在xaml中定义每个TabItem
视图并将每个Content
绑定到必要的VM。