从另一个窗口调用函数
问题描述:
我从另一个窗口调用一个MainWindow函数时出现问题。从另一个窗口调用函数
我有4个窗口:MainWindow,Window1,Window2和Window3。 MainWindow打开Window1,Window1打开窗口2,Window2打开Window3。我想从Window1和Window3调用MainWindow函数。我可以从Window1调用这个函数,但是我不知道如何从Window3执行此操作。
代码:从窗口1调用主窗口函数:
主窗口:
private void button2_Click(object sender, RoutedEventArgs e)
{
Window1 w1 = new Window1();
w1.Owner = this;
w1.ShowDialog();
}
窗口1:
public void button_cancel_Click(object sender, RoutedEventArgs e)
{
var myObject = this.Owner as MainWindow;
myObject.ruLanguage();
}
ruLanguage(); - 从MainWindow调用的函数
答
在WPF中,您可以通过Application.MainWindow
属性访问主窗口。
public void button_cancel_Click(object sender, RoutedEventArgs e)
{
var myObject = Application.MainWindow as MainWindow;
myObject.ruLanguage();
}
你也可以在你的窗户定义属性,所以你可以像使用它们:
public MainWindow AppMainWindow { get; set; }
private void button2_Click(object sender, RoutedEventArgs e)
{
Window1 w1 = new Window1();
w1.Owner = this;
w1.AppMainWindow = this;
w1.ShowDialog();
}
再通AppMainWindow
值左右。
作为一个方面说明,你可能想重新考虑你的设计。了解MVVM模式,这是使用WPF的更好方法。
将它作为ctor参数传递。 – SLaks 2014-09-28 14:30:34