Ich verwende eine Enumeration, um Werte in meine Combobox einzutragen. Ich möchte einen Konverter schreiben, der die "Beschreibung" des ausgewählten Enum-Wertes zeigt. Und wenn es ausgewählt wird, würde es den Enum-Wert zurückgeben.
Die meisten Online-Konverter haben die ConvertBack () -Methode nicht implementiert (deshalb poste ich hier).
Vielen Dank im Voraus.
Hier ist ConvertBack-Methode:
%Vor%Vollständiger Konvertercode:
%Vor%BEARBEITEN
Hier ist meine ComboBox XAML:
%Vor%EDIT 2:
Ich hatte ursprünglich ein falsches XAML, ich war SelectedValue
an ComboBox.SelectedIndex
gebunden, anstatt ComboBox.SelectedItem
. Deshalb musste ich Enum.ToObject
in meiner ConvertBack
-Methode verwenden. Nach dem Fixieren des XAML und dem Ausführen des Samples durch den Debugger wurde mir klar, dass ich einfach value
von ConvertBack
method zurückgeben konnte, weil der Wert selbst von Enum
type ist.
Ich weiß, dass dies eine alte Frage ist, aber aus irgendeinem Grund ist das ziemlich kompliziert, obwohl es scheint, als wäre es eine ziemlich häufige Aufgabe (ich mache das gerade in einer UWP-App). Mit einer Kombination aus der akzeptierten Antwort, einigen anderen Dingen, die ich gefunden habe, und ein bisschen meiner eigenen Arbeit, hier ist der einfachste Weg, den ich gefunden habe, um diese niedere Aufgabe zu erfüllen. Kurz gesagt:
Aufzählung
%Vor%Konverter
%Vor%Viewmodel (teilweise)
%Vor%Erweiterungen
%Vor%XAML (teilweise)
%Vor%Die Erweiterungsmethode im Beispiel könnte so aussehen:
%Vor%Ergänzung zu den obigen Beispielen, um zu zeigen, wie die Enumeration mit Attributen dekoriert wird.
%Vor%Übrigens, ich frage mich, warum Sie die Beschreibung zurück in enum konvertieren mussten. Wenn Sie die Enums selbst als ItemSource angeben, können Sie mithilfe der Beschreibungstechnik den Anzeigewert in der ComboBox anzeigen. Wenn ein Element ausgewählt ist, können Sie jedoch direkt eine Enumeration als ausgewähltes Element verwenden.