Wie man einen Wert mit Dispatcher.Invoke zurückgibt?
Weiß jemand, wie man einen Wert zurückgeben von Dispatcher
.Aufzurufen
in wpf? Ich will return der ausgewählte index für eine Kombinationsfeld.
Dank!
InformationsquelleAutor der Frage toni | 2010-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, natürlich, irgendwie klobig. Besseres design wäre die INotifyPropertyChanged implementieren in Ihrem VM erstellen Sie eine SelectedIndex-Eigenschaft, und binden die
SelectedIndex
Eigenschaft der combo-box. INPC bindet sind thread-insensitive (3.5 oder 4.0+, ich kann mich nicht erinnern, welche), so können Sie Lesen und aktualisieren diese Eigenschaften aus den verschiedenen threads in der VM ohne sorgen.InformationsquelleAutor der Antwort Will
Gibt es eine andere Möglichkeit, das liefert den Wert von Invoke():
Und durch die Art und Weise, sind die Chancen, dass der erste code (die arbeiten mit delegate) nicht ändern
oIsLoaded
an alle; Also ich würd lieber einenFunc<>
für die Rücksendung einen Wert aus dieser Art von Funktion.InformationsquelleAutor der Antwort user216652
Dies ist meine Methode zum abrufen der ausgewählte Wert für eine combobox, wie kann ich sagen, delegieren, um die Rückkehr Wert?
InformationsquelleAutor der Antwort toni
Habe ich das Problem gelöst. Die Lösung ist, erstellen Sie einen benutzerdefinierten Delegaten zurückgibt, die den gewünschten Typ so:
InformationsquelleAutor der Antwort toni
Können Sie dies nicht direkt, aber Sie können dies tun.
Dispatcher.Invoke() gibt den Rückgabewert des Delegaten, die Sie nennen, so ändern Sie Ihre Delegierten entsprechend.
Quelle
InformationsquelleAutor der Antwort Chris