2010-09-26 16 views
64

Ich habe immer mit diesen comboBox EigenschaftenConfused mit wpf ComboBox DisplayMemberPath, SelectedValue und SelectedValuePath

  1. DisplayMemberPath
  2. SelectedValue
  3. SelectedValuePath

I Form bin den Aufbau einer Master-Detail zu kämpfen.

  1. ComboBox mit Kunden gefüllt
  2. Benutzer wählt einen Kunden in Combo
  3. Alle Textfelder EG Füllt richtig

Das Problem, das ich ich habe haben es funktionieren, aber ich verstehe nicht, diese Eigenschaften und die Unterschiede. Gibt es ein noddy Beispiel, das erklärt, was sie tun? Du denkst vielleicht, das ist selbsterklärend. Nun, nicht für mich.

Danke für Ihre Eingabe

Antwort

135

Ich denke, wir können dies besser mit einem Beispiel verstehen. Diese Klasse:

public class Employee 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

und die folgende XAML:

<ComboBox ItemsSource="{Binding Source={StaticResource Employees}}" 
      DisplayMemberPath="Name" 
      SelectedValuePath="Id"/> 

DisplayMemberPath verweist auf die Name Eigenschaft, so angezeigt, um den Wert in der ComboBox und die Employee Einträge in der Dropdown-Liste enthalten ist, wird die Name Eigenschaft des Objekts Employee.

Um die anderen zwei zu verstehen, sollten Sie zuerst SelectedItem verstehen. SelectedItem gibt das aktuell ausgewählte Objekt Employee aus der ComboBox zurück. Sie können auch SelectedItem mit einem Objekt Employee zuweisen, um die aktuelle Auswahl in ComboBox festzulegen.

SelectedValuePath Punkte Id, was bedeutet, dass Sie die Id der aktuell ausgewählten Employee unter Verwendung SelectedValue bekommen kann. Sie können auch die aktuell ausgewählte Employee in der ComboBox durch Setzen der SelectedValue auf eine Id setzen (von der wir annehmen, dass sie in der Employees Liste vorhanden sein wird).

+0

Danke für Ihre Antwort. Viel klarer! – user451259

+8

Dies ist die prägnanteste und am einfachsten zu verstehende Erklärung dieser Konzepte, die ich gesehen habe. – JoelWilson

+1

NB: Dieses Beispiel würde nicht funktionieren, da "Id" und "Name" Eigenschaften und keine Klassenfelder sein müssen. – Shorstok

Verwandte Themen