WPF MVVM 关闭窗体

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

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

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

 

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

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

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

弹出的子窗体

 

窗体代码

注意 所绑定的DataContent

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

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

 

 

 

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

 

委托注册

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

 

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

子窗体ViewModel中的委托事件

 

父窗体中实现事件的方法

 

posted @ 2013-11-29 15:25  不起名字了  阅读(2547)  评论(0编辑  收藏  举报