c# - MVVM ViewModel 到 View 通信

标签 c# wpf mvvm

我是 MVVM 的新手并且正在开发一个应用程序,我想在我的应用程序中实现一些事情

  • 我的 View 模型应该能够启动一个新 View 。
    场景(命令绑定(bind)到按钮,某些进程决定做什么,根据结果,我需要显示 View1 或 View2)
  • 成功操作后,我的 View 模型应该显示一个消息框,如果打开了多个 View ,则必须在正确的 View 上提示消息(与哪个 View 模型绑定(bind))。

  • 我想从我的 View 模型中提供某种通知来查看。请引导我正确的方向。

    谢谢

    最佳答案

    您可能想尝试其中的一些 mvvm 框架。我个人喜欢 mvvm light,因为它可以在 silverlight 和 WPF 中使用,而且易于使用 http://mvvmlight.codeplex.com/ (无从属关系)

    这是一些主要框架的很好的比较/对比:What framework for MVVM should I use?

    大多数框架都有一个消息传递系统,它提供了在 View 和 View 模型之间以及 View 模型之间发送更新的能力。大多数框架还提供处理 MVVM 消息框的预制消息(我知道 MVVM Light 可以)。

    为了在 WPF 中处理 View 之间的切换,我使用 DataTemplates 和 Content 控件

    在 View .xaml 我添加
    <ContentControl Content="{Binding ActiveViewModel}" />这是显示注入(inject) View 的空间。 ActiveViewModel 是包含所选 View 模型的 View 模型的对象。

    在 ResourceDictionary 我添加如下内容:

      <DataTemplate DataType="{x:Type ViewModelNameSpace:ViewModelClassName}">
        <ViewNameSpace:ViewClasName/>
      </DataTemplate>
    

    最后,在 ViewModel 中,我将 ActiveViewModel 属性(设置为通过 INotifyPropertyChanged 通知 UI 更改)设置为我想使用的 viewModel 实例。
    ActiveViewModel = new ViewModelClass();
    

    关于c# - MVVM ViewModel 到 View 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9903485/

    相关文章:

    c# - WPF:DataGrid 查找和替换

    c# - 替换列中的多个字符串元素

    c# - 如何使我的扩展范围浮点乘法更有效率?

    wpf - 使用 Visual Studio 指定应用程序的图标

    c# - WPF动画不流畅

    c# - WPF MVVM ListBox.ItemTemplate CheckBox IsChecked 绑定(bind)

    data-binding - Windows Store 应用程序上的条件样式(或 Style.Triggers->DataTrigger 等效项)的最佳实践?

    c# - C#中的工厂模式

    c# - 窗口句柄单击事件

    mvvm - kendo 将 HTML 元素绑定(bind)到网格选定的行/数据项