3 Stimmen

Ist es garantiert, dass alle WPF-Bindungen funktionsfähig sein werden, wenn OnStartup() aufgerufen wird?

Ich arbeite an einer Anwendung, die WPF/C# mit MVVM verwendet. Ich habe eine bestimmte ObservableCollection<> die gebunden ist an ListBox .

Szenario 1 : Wenn die Anwendung läuft, ändere ich Folgendes ObservableCollection<> y ListBox wird wie erwartet aufgefüllt.

Szenario 2 : Mit neuen Anforderungen muss ich diese ListBox standardmäßig mit einigen Startwerten füllen. Also habe ich eine Methode zur Initialisierung in meinem ViewModel hinzugefügt. Ich rufe diese Methode in OnStartup() nach der Initialisierung von View & ViewModel auf. DataContext ist auch richtig eingestellt. In diesem Szenario werden die Werte in der ObservableCollection<> aktualisiert, leider werden sie nicht in der ListBox reflektiert.

Nur um zu überprüfen, ob etwas mit dem OnStartup() falsch ist, fügte ich den gleichen Methodenaufruf in einem Callback auf ContentRendered von der Ansicht, anstelle von OnStartup() es hat gut funktioniert.

Daher meine Frage, Wann genau garantiert MVVM, dass alle Bindungen korrekt eingerichtet sind?

Edita: Eine weitere Beobachtung, wenn ich Pop eine Nachricht/Dialog ListBox wird wie erwartet aufgefüllt. Es ruft ContentRendered Callback. Und dann füllt es richtig.

Ich bin fast überzeugt, dass ContentRendered die Funktion sein sollte, die die Bindungen garantiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X