我正在使用MVVM编写C#WPF应用程序。
在这个应用程序中,我有一个用户控件,它显示项目,用户可以修改,删除或添加项目。当用户保存任何修改后,调用save()方法来保存工作。
现在我想在退出当前用户控件之前显示要求保存的消息。 虽然我在窗口 MainView.xaml中使用了下面描述的相同方法,但当我想通过单击(X)按钮退出APPLICATION时,它可以请求确认。
MyView.xaml :
<UserControl
...
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
...>
<dxmvvm:Interaction.Triggers>
<dxmvvm:EventToCommand Command="{Binding LoadCommand}" EventName="Loaded" />
<dxmvvm:EventToCommand Command="{Binding ExitCommand}" EventName="Closing" PassEventArgsToCommand="True"/>
</dxmvvm:Interaction.Triggers>
<Grid>
...
</Grid>
</UserControl>
MyViewModel.cs
[Command]
public void Exit(CancelEventArgs e)
{
if (_editable)
{
switch (MessageBoxService.Show("Messages.QuitRequest", "Messages.Quit", MessageBoxButton.YesNoCancel, MessageBoxImage.Question))
{
case MessageBoxResult.Yes:
WithSave();
break;
case MessageBoxResult.No:
WithoutSave();
break;
case MessageBoxResult.Cancel:
e.Cancel = true;
break;
}
}
}
MyView.xaml.cs
public partial class XsltEditorView : UserControl
{
public XsltEditorView()
{
InitializeComponent();
}
}
有任何想法让我知道为什么退出命令没有按预期被解雇? 提前谢谢。