从另一个窗口调用函数

时间:2014-09-28 14:29:25

标签: c# wpf windows methods call

我从另一个窗口调用一个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打电话的功能

1 个答案:

答案 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的更好方法。