从视图模型中取消关闭窗口?

时间:2012-11-29 12:14:39

标签: wpf events mvvm viewmodel mvvm-light

我有一个WPF应用程序,它允许我编辑一些数据。

我想说,如果我们试图关闭申请,用户必须承认他将失去修改。

但我们在这里,我遇到了几个问题:

  1. Windows对象上没有“关闭”命令(当我从后面的代码中获取事件时,我可以执行命令)
  2. 我不知道用MVVM模式取消某些内容的推荐方法是什么?通常我会放e.Cancel = true;,但我们不能,因为它是一个命令
  3. 那么你如何询问用户是否肯定用MVVM模式关闭窗口?

2 个答案:

答案 0 :(得分:0)

这个概念是向窗口添加一个“挂钩”到窗口关闭事件的行为。一旦行为被挂钩,您就可以执行任何您需要的操作而不违反MVVM的原则。有关如何创建窗口关闭行为的信息,请查看此链接:

http://gallery.expression.microsoft.com/WindowCloseBehavior/

希望有所帮助。

答案 1 :(得分:0)

由于您将此问题标记为“mvvm-light”,因此您可以检查MVVMLight中的EventToCommand。它可能满足您的需求。

这个问题类似:

Handling the window closing event with WPF / MVVM Light Toolkit