在WPF中,要绑定Closing事件并阻止关闭窗口,可以使用以下方式:

  1. 在View的xaml中绑定Closing事件:
<Window 
    ...
    Closing="Window_Closing">
  1. 在ViewModel中定义一个Command,并在Command中阻止关闭窗口:
public ICommand WindowClosingCommand { get; private set; }

public MyViewModel()
{
    WindowClosingCommand = new RelayCommand<CancelEventArgs>(WindowClosing);
}

private void WindowClosing(CancelEventArgs e)
{
    // 阻止关闭窗口
    e.Cancel = true;
}
  1. 在View中将Closing事件绑定到ViewModel的Command上:
private void Window_Closing(object sender, CancelEventArgs e)
{
    var viewModel = DataContext as MyViewModel;
    viewModel.WindowClosingCommand.Execute(e);
}

需要注意的是,Closing事件的CancelEventArgs参数始终是null,因此需要使用RelayCommand的泛型版本,将CancelEventArgs作为参数传递进去。

wpf closing事件mvvm绑定阻止关闭CancelEventArgs 始终为null

原文地址: https://www.cveoy.top/t/topic/E0w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录