WPF应用程序OnExit事件

时间:2014-05-28 10:16:15

标签: c# wpf function-exit

我有一个带有主窗口的WPF应用程序。

在App.xaml.cs中,在OnExit事件中,我想使用我的MainWindow代码中的方法...

public partial class App
{
    private MainWindow _mainWindow;

    protected override void OnStartup(StartupEventArgs e)
    {
         _mainWindow = new MainWindow();
        _mainWindow.Show();


    }

    protected override void OnExit(ExitEventArgs e)
    {
        _mainWindow.DoSomething();
    }

}

方法:

public void DoSomething()
{
    myController.Function(
       (sender, e) =>
       {

        },

       (sender, e) =>
        {

        }
        );
 }

但我在“_mainWindow.DoSomething();”上加了一个断点。当我按f11时,它没有进入功能,功能什么也没做......我错过了什么?

我是初学者,有可能做我需要的吗?

编辑:发布后编辑

3 个答案:

答案 0 :(得分:1)

您将_mainWindow声明为Window类。 Window类没有DoSomething函数。 将_mainWindow的类更改为MainWindow,它应该可以工作。

 public partial class App
{
    private MainWindow _mainWindow;

    ...
}

答案 1 :(得分:0)

你的app.cs看起来像

 public partial class App : Application
{
    private MainWindow _mainwindow;

    public MainWindow mainwindow
    {
        get { return _mainwindow??(_mainwindow=new MainWindow()); }
        set { _mainwindow = value; }
    }
    protected override void OnStartup(StartupEventArgs e)
    {
        _mainwindow.Show();
    }
    protected override void OnExit(ExitEventArgs e)
    {
        _mainwindow.DoSomething();
    }
}

答案 2 :(得分:0)

类窗口没有成员DoSomething,MainWindow类(从Window派生)。

要么改变

private Window _mainWindow;

private MainWindow _mainWindow;

或像这样投出你的方法调用

((MainWindow)_mainWindow).DoSomething();