我有一个带有主窗口的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时,它没有进入功能,功能什么也没做......我错过了什么?
我是初学者,有可能做我需要的吗?
编辑:发布后编辑
答案 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();