WPF - MVVM - UI aktualisieren
-
Hallöchen,
hab ein blödes Problem. In meinem ViewModel wird eine Aktion durchgefürt die unter Umständen bis zu 2 Sekunden dauern kann. Hab auf meiner Oberfläche ein kleines Bildchen eingebaut was zu Beginn eingeblendet wird und danach natürlich wieder ausgeblendet wird. Blöd ist nur, dass das Bild nicht angezeigt wird. Fakt ist, alle Bindings sitzen perfekt, die Funktion habe ich zum Testen auch mal 5 Sekunden laufen lassen. Problem ist nur, dass die UI das nicht mitbekommt weil er scheinbar überhaupt nicht auf den Einblenden achtet. Jetzt würde ich gerne mal eben ein Refresh von Hand" durchführen. Wie macht mn das am besten mit MVVM?
-
1. Bild anzeigen
2. Aktion in einem Workerthread starten
3. Sobald der Workerthread sagt das er fertig ist das Bild wieder ausblenden.Du blockierst einfach deine UI wenn du ohne ein weiteren Thread arbeitest.
-
Das ist mir auch klar. Aber das sollte doch sequenziell abgearbeitet werden und nicht so wie er gerade lustig ist. Ein BGW kommt im Moment nicht in Frage da wir mit dem Entity Framework arbeiten und das ist ja bekanntlich nicht Thread safe. Deswegen wäre eine Antwort auf meine Frage ganz gut. Nichts für ungut;-)
-
Hallo,
du hast doch die Antwort auf deine Frage - das ist die Standardlösung.
Zu dem sequenziell abarbeiten: Prinzipiell ja, aber das Render geschieht ja auch nicht instantan. Die Aktion blockiert dann auch die erste Anzeige.
-
secondsun schrieb:
Ein BGW kommt im Moment nicht in Frage da wir mit dem Entity Framework arbeiten und das ist ja bekanntlich nicht Thread safe.
Nach dieser Logic wäre keine Applikation die das EF verwendet eine Multithread Applikation
Ich habe daheim ein EF Projekt, auf arbeit ebenso.
Und wir arbeiten mit Threads - da staunste wa