WPF窗口关闭事件

3

我想在窗口关闭之前向服务器发送一些数据。我使用了关闭事件,但它没有起作用。问题出在哪里?

    private void Window_Closing(object sender, RoutedEventArgs e)
    {
            _obj.CloseConnection();

    }
3个回答

7

尝试在窗口代码后台覆盖OnClosing。在那里,您有机会通过设置e.Cancel = true来阻止窗口关闭,如果您还有其他事情要做。

    protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
       bool isClosed = _obj.CloseConnection();

       if(!isClosed)
          e.Cancel = true;

    }

0

你有检查过_obj.CloseConnection()是否有问题吗?尝试调试你的代码并检查事件处理程序是否被调用。


0

你也可以这样做,而不必覆盖 OnClosing 方法。

主窗口的构造函数是

       public MainWindow()
    {
        InitializeComponent();
        Loaded += MainWindow_Loaded;
        Closing += MainWindow_Closing;
    }

然后创建一个事件处理程序

        private void MainWindow_Closing(object? sender, System.ComponentModel.CancelEventArgs e)
    {
       // do something
     }

注意:这可能不符合MVVM。

D


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接