2010-09-26 14 views
64

ho sempre lottato con quelle proprietà ComboBoxconfuso con WPF ComboBox DisplayMemberPath, SelectedValue e SelectedValuePath

  1. DisplayMemberPath
  2. SelectedValue
  3. SelectedValuePath

Sto costruendo un modulo maestro dettagli.

  1. ComboBox pieno di clienti
  2. utente seleziona un cliente in un unico locale
  3. Tutte le caselle di testo EG riempie correttamente

Il problema che sto avendo io ho fatto il lavoro ma io non capisco queste proprietà e le differenze. Esiste un esempio noddy che spiega cosa fanno? Potresti pensare che sia auto-esplicativo. Non me ne frego.

Grazie per il vostro input

risposta

135

Penso che possiamo capire meglio con un esempio. Vedere questa classe:

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

e il seguente XAML:

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

DisplayMemberPath punti alla proprietà Name, in modo che il valore visualizzato nel ComboBox ei Employee voci contenute nel menu a tendina, sarà la proprietà Name dell'oggetto Employee.

Per comprendere gli altri due, è necessario prima comprendere SelectedItem. SelectedItem restituirà l'oggetto Employee attualmente selezionato da ComboBox. È inoltre possibile assegnare SelectedItem con un oggetto Employee per impostare la selezione corrente in ComboBox.

SelectedValuePath punti a Id, che significa che è possibile ottenere il Id di correntemente selezionato Employee utilizzando SelectedValue. È anche possibile impostare lo Employee attualmente selezionato nel ComboBox impostando lo SelectedValue su un Id (che si presume sarà presente nell'elenco Employees).

+0

Grazie per la risposta. Molto più chiaro! – user451259

+8

Questa è la spiegazione più concisa e più facile da comprendere di questi concetti che ho visto. – JoelWilson

+1

NB: questo esempio non funzionerebbe, poiché 'Id' e' Name' devono essere proprietà, non campi di classi. – Shorstok

Problemi correlati