由于程序采用MVVM模式同时有些操作需要单独窗口来进行处理。因此就会产生窗口关闭问题,
由于是MVVM和需要操作弹出窗口中操作的内容因此就需要在mvvm进行统一处理。
网上查了几种方法采用其中一种 不知道是合理,但是可以实现我所需要的效果,贴出来大家可以参考一下,同时也请给出更好地方案。
1首先给弹出窗体起一个名字。
这里有个要注意的就是 弹出的子窗体 要与主窗体采用同一个ViewModel这样方便数据传输。
或者采用事件委托,子窗体关闭之后要将操作处理的结果 委托给 主窗体所属的ViewModel。
弹出的子窗体
窗体代码
注意 所绑定的DataContent
和确定按钮绑定的命令 以及窗体命名
按钮Command 命令来自子窗体的ViewModel 参数是窗体的名字
最后 关闭窗体,整理弹出窗口操作的数据,然后通过委托传递给父窗体的ViewModel中
委托注册
子窗体ViewModel与父窗体ViewModel事件绑定
备注此处委托我是用的系统自带的也可以自己定义
子窗体ViewModel中的委托事件
父窗体中实现事件的方法