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

Len*_*nik 9 wpf design-patterns popup mvvm

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

  1. 将UI(ShowDialog())代码放入虚拟机中看起来很糟糕
  2. 让VM发送一些UI可以订阅的事件并在后面的代码中显示一个对话框(但我们正在努力争取零代码:))

你们是怎么解决这个案子的?

Bry*_*son 2

不要将 UI 代码放在虚拟机中,这只会导致以后出现很多麻烦。

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

最重要的是,运用你的头脑并相信你的判断,你很快就会学会使用哪个。