Ich möchte mein ComboBox
in XAML erhalten, um an meine List
Sammlung von benutzerdefinierten Objekten im Code dahinter zu binden.
Momentan listet die ComboBox
für jeden Eintrag dpwpf.Contact
auf, was mein {namespace}.{classname}
ist.
Was muss ich in das XAML eingeben, um es aufzulisten, z. Nachname + Vorname?
Ich weiß, dass es so etwas wie {Binding Path=... Value=...}
ist, aber ich verstehe es nicht.
XAML:
%Vor%Code dahinter:
%Vor% Sie können die Methode ToString
von Contact
überschreiben oder in WPF eine DataTemplate
definieren.
Damit können Sie definieren, wie ein Contact
-Objekt irgendwo im Fenster erscheinen soll. Wenn Sie dies auf ComboBox
beschränken möchten, können Sie DataTemplate
nur den ComboBox
-Ressourcen hinzufügen.
Siehe auch Was bedeutet "{Binding}"? von Bea Stollnitz
Was der Bindemechanismus tut, ruft ToString () für den Typ auf, der gebunden wird. Weil ich denke, dass Sie nicht ToString () überschreiben, wird es nur so der namespace.type statt etwas Nützliches.
Wie rebellisch heißt, können Sie DisplayMember verwenden, um der Bindung mitzuteilen, dass eine Eigenschaft dieses Namens für den Anzeigewert verwendet werden soll, oder Sie können ToString () wie folgt überschreiben, um Ihre benutzerdefinierte Eigenschaft anzuzeigen.
%Vor%Sie müssen DisplayMember="TheValue"
verwendenSie können dies in der XAML oder in der CLR hinzufügen Beachten Sie auch Ihre Bindung in cose und nicht durch den XAML. Ich denke, das bezieht sich auf eine Ihrer Fragen. welche die Bindung über ObjectDataProvider implementiert benutze das Beispiel und füge das DisplayMemeber="memeber" im XAML
hinzuHTH, Eric,
Tags und Links wpf data-binding xaml combobox