75 votes

Confondu avec wpf ComboBox DisplayMemberPath, SelectedValue et SelectedValuePath

J'ai toujours eu du mal avec ces propriétés de la zone de liste déroulante

  1. DisplayMemberPath
  2. SelectedValue
  3. SelectedValuePath

Je suis la construction d'un maître formulaire de détail .

  1. ComboBox rempli avec les Clients
  2. L'utilisateur Sélectionne un Client dans la liste déroulante
  3. Toutes les zones de texte par exemple Remplit correctement

Le problème que j'ai, j'ai fait ce travail, mais je ne comprends pas ces propriétés et les différences. Est-il un noddy exemple expliquer ce qu'ils font ? Vous pourriez penser est auto-explicatif.Et bien pas pour moi.

Merci pour vos commentaires

164voto

Yogesh Points 6818

Je pense que nous pouvons comprendre mieux avec un exemple. Voir cette classe:

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

et le code xaml suivant:

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

DisplayMemberPath de points à l' Name de la propriété, de sorte que la valeur affichée dans l' ComboBox et de la Employee des entrées figurant dans la liste déroulante, sera l' Name de la propriété de l' Employee objet.

Pour comprendre les deux autres, vous devez d'abord comprendre SelectedItem. SelectedItem sera de retour le actuellement sélectionnée Employee objet de l' ComboBox. Vous pouvez également affecter SelectedItem avec un Employee objet pour définir la sélection courante dans l' ComboBox.

SelectedValuePath points de Id, ce qui signifie que vous pouvez obtenir de l' Id de actuellement sélectionnée Employee par l'aide d' SelectedValue. Vous pouvez également définir la ligne actuellement sélectionnée Employee dans la ComboBox par réglage de l' SelectedValue d'un Id (ce que nous supposons sera présent dans l' Employees de la liste).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X