Guten Morgen,
derzeit beschäftige ich mich mit dem MVVM-Schema und komme damit auch eigentlich gut zu recht und empfinde es auch als hilfreich. Nun möchte ich ein zweites Fenster vom Hauptfenster meines Programms öffnen. Normalerweise soll das ViewModel nichts von anderen ViewModels oder gar dem View wissen, aber ich prinzipiell würde es mich bei dieser Anwendung nicht stören das zweite Fenster aus dem ViewModel des Hauptfensters zu öffnen:
In diesem zweiten Fenster sollen Einstellungen gemacht werden, die natürlich im Hauptfenster verwendet werden sollen. Ich möchte daher Daten zwischen den beiden ViewModel austauschen. Was ich biher gemacht habe:
Das funktioniert auch eigentlich ganz prächtig. Meine Frage hier wäre lediglich, ob es da eine elegantere Vorgehensweise gibt.
Mein zweites Problem besteht quasi nach dem Öffnen des zweiten Windows. Wenn ich schließen möchte steht mir ja erstmal nicht mehr this.Close() zur Verfügung. Wie kann ich also das Fenster schließen und vor allem so schließen, dass ich es danach wieder aufrufen kann?
derzeit beschäftige ich mich mit dem MVVM-Schema und komme damit auch eigentlich gut zu recht und empfinde es auch als hilfreich. Nun möchte ich ein zweites Fenster vom Hauptfenster meines Programms öffnen. Normalerweise soll das ViewModel nichts von anderen ViewModels oder gar dem View wissen, aber ich prinzipiell würde es mich bei dieser Anwendung nicht stören das zweite Fenster aus dem ViewModel des Hauptfensters zu öffnen:
Code:
Window secondWindow = new Window();
secondWindow.Show();
In diesem zweiten Fenster sollen Einstellungen gemacht werden, die natürlich im Hauptfenster verwendet werden sollen. Ich möchte daher Daten zwischen den beiden ViewModel austauschen. Was ich biher gemacht habe:
Code:
SecondWindowViewModel secondWindowViewModel = new SecondWindowViewModel();
secondWindowViewModel.Property = this.Property;
Window secondWindow = new Window();
secondWindow.DataContext = secondWindowViewModel;
secondWindow.Show();
Das funktioniert auch eigentlich ganz prächtig. Meine Frage hier wäre lediglich, ob es da eine elegantere Vorgehensweise gibt.
Mein zweites Problem besteht quasi nach dem Öffnen des zweiten Windows. Wenn ich schließen möchte steht mir ja erstmal nicht mehr this.Close() zur Verfügung. Wie kann ich also das Fenster schließen und vor allem so schließen, dass ich es danach wieder aufrufen kann?
