我想处理窗口中的"Closing"事件(当用户点击右上角的"X"按钮时),以便最终显示确认消息或/并取消关闭.
我知道如何在代码隐藏中执行此操作:订阅窗口的"Closing"事件,然后使用"CancelEventArgs.Cancel"属性.
但我正在使用MVVM,所以我不确定这是一个好方法.
我认为好的方法是将Closing事件绑定到ViewModel中的Command.
我试过了:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing">
<cmd:EventToCommand Command="{Binding CloseCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)
在我的ViewModel中使用关联的RelayCommand但它不起作用(命令的代码未执行).
我在WPF应用程序中使用MVVM.我对两者都很陌生.让我说明我不是MVVM模式中最纯粹的,我试图尽可能多地使用尽可能多的最佳实践,但我正在努力做出我认为合理的妥协,使其在我们的环境中运行.例如,我不想在我的View代码隐藏中实现0%的代码.
我有几个关于最佳实践的问题.
1)我知道我不希望我的VM了解附加的View,但是View对其VM有引用是否合理?
2)如果视图中的控件打开另一个视图(例如对话框),我应该在视图中处理吗?在VM中处理它似乎是错误的,因为VM具有特定View的一些知识.