W Window2 musisz utworzyć zmienną pomocniczą aby potem odczytać ją z Window1.
Kopiuj
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
}
private void hGenerateString_Click(object sender, RoutedEventArgs e)
{
MyText = "Tutaj jest mój tekst";
}
public string MyText { get; private set; }
}
A jak odczytać? Tak:
Kopiuj
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
dialog = new Window2();
dialog.Show();
}
Window2 dialog;
private void ReadValueFromDialog2_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(dialog.MyText);
}
}
Był to przykład okna niemodalnego. Jest to takie, które może działać równolegle z oknem głównym. Okno modalne to takie, które blokuje Tobie dostęp do okna głównego dopóki nie zamkniesz dialogu.
Okno niemodalne wywołujesz poprzez dialog.Show();. Okno modalne poprzez dialog.ShowDialog();.
Teraz zasadnicza różnica: Gdy użyjesz dialog.Show(); kod będzie się wykonywać dalej, natomiast przy dialog.ShowDialog(); kolejne instrukcje w metodzie będą wykonywać się dopiero po zamknięciu dialogu. Jeżeli użyjesz okna modalnego powinno to wtedy wyglądać tak:
Kopiuj
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
dialog = new Window2();
}
Window2 dialog;
private void ReadValueFromDialog2_Click(object sender, RoutedEventArgs e)
{
dialog.ShowDialog();
MessageBox.Show(dialog.MyText);
}
}