Ich habe ein Kontrollkästchen, dessen IsEnabled-Eigenschaft an eine schreibgeschützte Eigenschaft des Datenkontexts gebunden ist. Aber das Ergebnis ist nicht immer wie erwartet. Eigentlich wurde diese Eigenschaft in einem Task (threading) in View-Modell-Konstruktor berechnet. Ich hatte den Eindruck, dass der berechnete Wert irgendwie anders ist, aber nach Inspektion auf Snoop, zeigt es IsEnabled Eigenschaft des Kontrollkästchens auf False und im Datenkontext Registerkarte diese Eigenschaft ist True.WPF-Eigenschaftswert unterscheidet sich von gebundenem Wert
Ich glaube, dass dies auf Threading zurückzuführen ist und wann immer die Ansicht geladen wird, bevor diese Thread-Ausführung abgeschlossen wird, zeigt es einen falschen Wert an.
Früher verwendete ich das für die Bindung
IsEnabled="{Binding IsFeatureAvailable}"
Später in der Hoffnung, diese zu fixieren, verwende ich diese
aber es gibt keine Veränderung, irgendwelche Vorschläge
I Rahmen bin mit Version 4.5.2 und Caliburn micro für MVVM
Sind Sie die INotifyPropertyChanged-Schnittstelle implementieren? Wie legen Sie die Quelleigenschaft fest? – mm8
Wenn Sie MultiThreading verwenden, sollten Sie den 'Dispatcher' verwenden und die Benachrichtigung im UI-Thread auslösen. Ich hatte dieses Problem mit Benachrichtigungen, die nicht angezeigt wurden, nur weil ich 'OnPropertyChanged' nicht über Dispatcher aufgerufen habe. – XAMlMAX