1

我在 WPF 中有一个 C# 项目。我以前使用过 MVC,现在我正在尝试将 MVVM 与 XAML 结合使用。

我有多个模型,我有一个带有 Tabitems 的 GUI 窗口,我有多个 ViewModel。每个选项卡项都与每个模型相关,因此我为每个模型都有一个 ViewModel。

现在我想使用绑定(为什么还要使用 WPF/XAML)。如何将按钮绑定到 ViewModel X 中的命令?

例如:

  • 两种模型:房子和人
  • 视图:GUI 中的两个 TabItem,一个关于与房屋的所有交互的 TabItem,以及一个用于人的 TabItem。
  • 两个 ViewModel,与每个 TabItem 相关联。
  • 我有命令出售房屋。

我看到很多代码只是绑定到命令的名称,但由于我有多个视图,而不仅仅是 1,我该怎么做?我应该创建 1 个 ViewModel 来处理所有其他 ViewModel 吗?

4

2 回答 2

1

我看到很多代码只是绑定到命令的名称,但由于我有多个视图,而不仅仅是 1,我该怎么做?

确保您了解绑定系统的工作原理。您正在绑定到 DataContext。因此,如果每个单独的选项卡都有一个单独的 DataContext 值集,那么您可以使用命令的名称进行绑定。

知道了这一点,您就可以继续使用您建立的模式。以我的拙见,我认为它会变得过于复杂。大多数 MVVM 开发人员正在应用 View 到 ViewModel 的一对一关系(不过,在谈论 UserControl 对象时事情会变得很棘手)。不过,没有什么是一成不变的,因此最终取决于您要如何进行。

于 2013-01-11T12:47:05.677 回答
0

我猜您的视图模型数量有限。所以你有两个选择:第一,是使用DataTemplateSelector,第二是在 xaml 中定义每个TabItem视图并将每个视图绑定Content到必要的 VM。

于 2013-01-11T12:53:46.397 回答