/ / Nie je možné zavolať metódu z iného okna v metódach C # WPF - c #, trieda

Nie je možné zavolať metódu z iného okna v metódach C # WPF - c #, class

Ok, povedzme, že mám dve okná. V prvej mám metódu

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

A v druhej nazývam túto metódu:

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

Ale nič sa nestane. Čo robím zle? Vďaka.

odpovede:

10 pre odpoveď č. 1

Majiteľa môžete priradiť k oknu, ktoré bolo vytvorené vo vašom hlavnom okne.

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

Potom by ste mali mať prístup k niečomu takému.

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

MainWindow

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


}

Druhé okno

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


}

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

0 pre odpoveď č. 2

Prečo sa to pokúšate.

public string Test()
{

return  "works";
}

MainWindow mw = new MainWindow();


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

0 pre odpoveď č. 3

Vytváraš iný objekt MainWindow ako je uvedené nižšie:

MainWindow mw = new MainWindow();

namiesto vytvárania nových MainWindow objekt použiť existujúcu (za predpokladu, že ste už vytvorili MainWindow objekt pred).

Skúste to:

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

ak môžete zobraziť úplný kód, ktorý nás vykuruje.