无法从C#WPF中的另一个窗口调用方法

Mic*_*wal 6 c# methods class

好吧,假设我有两个窗口.在第一个我有一个方法

public void Test()
{
    Label.Content += " works";
}
Run Code Online (Sandbox Code Playgroud)

在第二个我称之为这个方法:

MainWindow mw = new MainWindow();
mw.Test();
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.我究竟做错了什么?谢谢.

Mar*_*all 13

您可以将所有者分配给在MainWindow中创建的窗口.

window.Owner = this; //This is added to the code that use to create your Window
Run Code Online (Sandbox Code Playgroud)

然后你应该能够访问它这样的东西.

((MainWindow)this.Owner).Test();
Run Code Online (Sandbox Code Playgroud)

主窗口

public partial class MainWindow : Window
{
    Window1 window = new Window1();
    public MainWindow()
    {
        InitializeComponent();
        window.Show();


    }

    public void Test()
    {
        label1.Content += " works";
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        window.Owner = this;
    }


}
Run Code Online (Sandbox Code Playgroud)

第二个窗口

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();


    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ((MainWindow)this.Owner).Test();
    }
}
Run Code Online (Sandbox Code Playgroud)