C# 绑定到MVVM WPF中的窗口关闭事件?
我试图捕获视图上的关闭事件以调用save方法。我不希望用户能够关闭窗口并处理未保存的更改。我试着用C# 绑定到MVVM WPF中的窗口关闭事件?,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我试图捕获视图上的关闭事件以调用save方法。我不希望用户能够关闭窗口并处理未保存的更改。我试着用 Application.Current.MainWindow.Close() 但所讨论的视图不是我的主窗口。是否有任何方法可以将关闭窗口绑定到Xaml中的命令,具体如下: public RelayCommand CloseWindow; Constructor() { CloseWindow = new RelayCommand(CloseWin); } public void Clo
Application.Current.MainWindow.Close()
但所讨论的视图不是我的主窗口。是否有任何方法可以将关闭窗口绑定到Xaml中的命令,具体如下:
public RelayCommand CloseWindow;
Constructor()
{
CloseWindow = new RelayCommand(CloseWin);
}
public void CloseWin(object obj)
{
Window win = obj as Window;
win.Close();
}
&Xaml:
<Button Command="{Binding CloseWindowCommand}" CommandParameter="{Binding ElementName=WindowNameTobeClose}" Content="Cancel" />
但是捕获窗口关闭事件而不是绑定到UI中定义的按钮?这是我的解决方案。Xaml中的命名空间:
xmlns:z="http://schemas.microsoft.com/expression/2010/interactivity"
Xaml绑定:
<z:Interaction.Triggers>
<z:EventTrigger EventName="Closing">
<i:InvokeCommandAction Command="{Binding CloseWindowCommand}" />
</z:EventTrigger>
</z:Interaction.Triggers>
属性在viewModel构造函数方法中初始化:
private void InitialiseBtnCommands()
{
CloseWindowCommand = new BtnCommand(CloseWindowCommandAction);
}
最后是执行保存的操作方法:
private void CloseWindowCommandAction()
{
//Save your data etc.
}
@Sajeetharan,这个问题与你的链接问题完全相同。如果你投票决定关闭这个网站,因为它在将来是一个复制品,这将有助于清理这个网站。非常感谢。
private void CloseWindowCommandAction()
{
//Save your data etc.
}