wpf - 使用WPF M-V-VM模式显示弹出窗口的正确方法

标签 wpf design-patterns mvvm popup

对于弹出窗口,我对VM的职责有疑问。
当应用程序弹出消息框或某种对话框(使用MVVM)时,我们拥有的两个选项是:

  • 将UI(ShowDialog())代码放入VM中,这似乎很糟糕
  • 使VM发送UI可以订阅的某种事件,并在后面的代码中显示一个对话框(但我们正在努力在后面的代码中争取零代码:))

  • 你们如何处理这种情况?

    最佳答案

    不要将UI代码放在VM中,这只会在以后引起很多麻烦。

    当您要弹出窗口或对话时,通常有两种情况。您是因为业务原因而这样做,例如双击列表的详细 View ,或者它完全基于UI,例如弹出一个选项窗口。在第一种情况下,最好在VM中使用事件,在后一种情况下,我仅使用事件处理程序。一个好的经验法则是,如果您不需要任何(重要的)VM变量来完成操作,那么您应该只使用事件处理程序。

    最重要的是,动脑筋并信任自己的判断力,您将很快学会使用哪种方法。

    关于wpf - 使用WPF M-V-VM模式显示弹出窗口的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/707818/

    相关文章:

    wpf 文本框绑定(bind)日期时间

    c# - WPF 上下文菜单命令绑定(bind)

    mvvm - Prism 中的计算属性

    c# - 如何使用 MVVM Light for WPF 显示对话框?

    wpf - 如何在mvvm wpf模型中配置Relay命令

    c# - WPF 请稍候对话框

    c++ - 非循环访问者模式。将接受功能移动到一个地方

    c# - 实用程序类 : static class vs member variable vs local variable

    c# - 我的 DAL 应该返回 Person 还是 Datatable?

    wpf - Caliburn Micro,绑定(bind)和通知