我从另一个窗口调用一个MainWindow函数时出现问题。
我有4个窗口:MainWindow,Window1,Window2和Window3。 MainWindow打开Window1,Window1打开window2,Window2打开Window3。我想从Window1和Window3调用MainWindow函数。我可以从Window1调用此函数,但我不知道如何从Window3执行此操作。
代码:从Window1调用MainWindow函数:
主窗口:
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打电话的功能
答案 0 :(得分:1)
在WPF中,您可以通过Application.MainWindow
属性访问主窗口。
public void button_cancel_Click(object sender, RoutedEventArgs e)
{
var myObject = Application.MainWindow as MainWindow;
myObject.ruLanguage();
}
您还可以在Windows上定义属性,因此您可以像这样使用它们:
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的更好方法。