wpf - 如何在一个主窗口中使用多个 ViewModel

标签 wpf xaml mvvm viewmodel icommand

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

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

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

例如。:

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

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

    最佳答案

    I see alot of code that just binding to the name of the command, but since I have multiple views, and not just 1, how do I do it?



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

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

    关于wpf - 如何在一个主窗口中使用多个 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277720/

    相关文章:

    c# - 尝试在 Visual Studio 2008 中编辑 UI 时出现 WPF Designer 异常

    c# - WP8.1 - CancellationToken 和 async 仍然永远等待并且永远不会结束

    WPF 报表设计器

    wpf - Web 性能达不到标准……新的 "Microsoft Way"是什么?

    visual-studio - 获取构建过程模板中的当前冲刺/迭代?

    c# - 了解 MVVM : simple non-working code

    c# - MVVM WPF : Get usercontrol name from ViewModel

    c# - Wpf Listview不显示数据

    c# - 使用事件等待句柄阻止窗口关闭,然后包装为异步等待。可以接受吗?

    WPF 应用程序创建安装程序