WPF MVVM 关闭窗体

由于程序采用MVVM模式同时有些操作需要单独窗口来进行处理。因此就会产生窗口关闭问题,

由于是MVVM和需要操作弹出窗口中操作的内容因此就需要在mvvm进行统一处理。

网上查了几种方法采用其中一种 不知道是合理,但是可以实现我所需要的效果,贴出来大家可以参考一下,同时也请给出更好地方案。

 

1首先给弹出窗体起一个名字。

这里有个要注意的就是 弹出的子窗体 要与主窗体采用同一个ViewModel这样方便数据传输。

或者采用事件委托,子窗体关闭之后要将操作处理的结果 委托给 主窗体所属的ViewModel。

弹出的子窗体

WPF MVVM 关闭窗体_第1张图片

 

窗体代码

注意 所绑定的DataContent

和确定按钮绑定的命令 以及窗体命名

按钮Command 命令来自子窗体的ViewModel 参数是窗体的名字

WPF MVVM 关闭窗体_第2张图片

 

 

 

最后 关闭窗体,整理弹出窗口操作的数据,然后通过委托传递给父窗体的ViewModel中

WPF MVVM 关闭窗体_第3张图片

 

委托注册

子窗体ViewModel与父窗体ViewModel事件绑定

 

备注此处委托我是用的系统自带的也可以自己定义

子窗体ViewModel中的委托事件

 

父窗体中实现事件的方法

WPF MVVM 关闭窗体_第4张图片

 

你可能感兴趣的:(WPF)