/ / Nie można wywołać metody z innego okna w C # WPF - c #, klasa, metody

Nie można wywołać metody z innego okna w C # WPF - c #, class, methods

Ok, powiedzmy, że mam dwa okna. W pierwszym mam metodę

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

W drugim nazywam tę metodę:

MainWindow mw = new MainWindow();
mw.Test();

Ale nic się nie dzieje. Co ja robię źle? Dzięki.

Odpowiedzi:

10 dla odpowiedzi № 1

Możesz przypisać właściciela do okna, które zostało utworzone w MainWindow.

window.Owner = this; //This is added to the code that use to create your Window

Wtedy powinieneś mieć do niego dostęp w ten sposób.

((MainWindow)this.Owner).Test();

Główne okno

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;
}


}

Drugie okno

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


}

private void Button_Click(object sender, RoutedEventArgs e)
{
((MainWindow)this.Owner).Test();
}
}

0 dla odpowiedzi nr 2

Dlaczego tak się starasz?

public string Test()
{

return  "works";
}

MainWindow mw = new MainWindow();


// Your second form label.
lblsecondwindow.Text = mw.Test();

0 dla odpowiedzi № 3

Tworzysz inny obiekt MainWindow jak poniżej:

MainWindow mw = new MainWindow();

zamiast tworzyć nowe MainWindow obiekt używa istniejącego (zakładam, że już go utworzyłeś) MainWindow obiekt przed).

Spróbuj tego:

oldmaindwindow.Test();//here oldmainwindow is an old object of MainWindow

jeśli potrafisz pokazać pełny kod, to nas on.