Autor Beitrag
Ulrich Michalik
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 30.07.14 17:46 
Ein Objekt welches in einem separaten Thread Instanziert wird liefert mir (per Event) eine Instanz eines UserControls während der Laufzeit des Threads zurück.
Dieses User Control möchte ich bei Empfang gern an ein User Control bzw. an das MainWindow über MVVM binden.

Wie kann ich das realsieren, da beide User Controls in verschiedenen Threads leben ?

_________________
Neueinsteiger in Linux und Kylix
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 30.07.14 18:27 
Hallo und willkommen im C#-Forum,

alle UI-Elemente müssen im UI-Thread erzeugt und verwaltet werden. Für WPF gibt es dafür die Methode Dispatcher.Invoke, um aus einem anderen Thread heraus die Aktion in den Main UI-Thread zu verlagern, s. z.B. auch myCSharp.de-[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke).

Was mich jedoch stutzig macht, ist, daß du ein UserControl mittels MVVM binden willst. Dies ist eigentlich die falsche Vorgehensweise in WPF, da man Daten im ViewModel hält und diese dann an UI-Elemente bindet. Stichworte dazu wären "Data Template" (und evtl. "Control Template") sowie "ICommand".

PS. Deine Signatur ist wohl ein wenig veraltet, oder?