我在WPF中使用MVVM概念编写应用程序。
我试图没有代码隐藏,并试图让我的ViewModel和Views完全分离。这意味着我必须在xaml中处理关闭窗口。
当我关闭窗口时,我想执行一个relaycommand,但只有当我按下" OK"。如果我按下取消,则不得执行该命令。
我已尝试在触发器上的窗口" IsClosing"时执行relay命令,但这不起作用,因为该命令也在"取消"时执行。被压了。 我知道您可以将视图作为参数发送到relaycommand,但这意味着我的ViewModel知道我的视图。
当我按下" OK",而没有ViewModel与View有任何关系时,是否有人知道如何执行relaycommand并关闭窗口?
亲切的问候!
答案 0 :(得分:0)
最好的MVVM解决方案是删除窗口镶边(关闭按钮等)并提供显式关闭和取消按钮,您可以将它们绑定到视图模型中的命令。
要处理实际关闭窗口,请使用附加行为,如此问题的接受答案中所述 - How should the ViewModel close the form?