WPF zone de liste déroulante de la valeur et afficher le texte
J'ai l'habitude de faire des choses comme
State.Items.Add(new ListItem { Text = "SomeState", Value = NumericIDofState });
Où l'État est une zone de liste dans la ASP.NET.
Comment puis-je obtenir la même chose avec un WPF ComboBox? Je vois une propriété appelée 'Contenu' dans le ComboBoxItem objet, mais comment puis-je attribuer à chaque élément une valeur autre que ce qui est affiché à l'utilisateur? S'il vous plaît aider.
c'est à dire: des int valeur
OriginalL'auteur Prabath Yapa | 2010-09-23
Vous devez vous connecter pour publier un commentaire.
Voir ces propriétés de combo:
OriginalL'auteur TalentTuner
WPF Combobox a:
SelectedValuePath
propriété qui spécifie le chemin d'accès à lapropriété qui est utilisée pour déterminer la valeur de la
SelectedValue
de la propriété. Il est similaire à la ASP.NET
ListItem
'sValue
propriété.DisplayMemberPath
propriété qui définit un modèle par défautqui décrit comment afficher les objets de données. Il est similaire à la ASP.NET
ListItem
'sText
propriété.Disons que vous voulez que votre
Combobox
pour afficher une collection de la suiteKeyValuePair
objets:Vous définissez une propriété dans votre modèle de vue de retourner cette collection:
Ensuite, votre XAML pour la
Combobox
serait:Où vous définissez les
SelectedValuePath
etDisplayMemberPath
propriétés à la propriété désirée noms des objets (Key
etValue
en conséquence) pour afficher par laCombobox
.Ou, si vous voulez vraiment ajouter des éléments à
Combobox
dans le code derrière au lieu d'utiliser une liaison, vous pouvez le faire aussi bien. Par exemple:OriginalL'auteur Alexander Abakumov
Si vous ne souhaitez exposer une propriété simple dans le viewmodel et gérer le texte pour le choix de la vue, vous pouvez faire une solution simple comme ceci:
Exemple avec un bool propriété:
Type détaillé des solutions de rechange d'origine (exemples)
Ci-dessous sont plus prolixe des alternatives où les types sont explicitement déclaré. En fonction de votre style préféré (ou peut-être des types qui exige), peut-être qu'il vous convient le mieux.
Exemple avec un bool propriété:
Le sys espace de noms est déclaré comme ceci:
pourquoi ne pas Tag="True"?
merci pour la suggestion, je l'ai testé et il fonctionne. J'ai mis à jour ma réponse avec des exemples très simplifiés, mais en gardant les anciens exemples de trop en cas de besoin pour les cas de coin.
OriginalL'auteur TGasdf
Si vous ignorez la Valeur, puis je pense que c'est assez simple pour ajouter un nouvel élément dans une zone de liste modifiable en cours d'exécution.
La
SelectedIndex
propriété est définie àItems.Count-1
de sorte que le nouvel élément apparaît dans la zone de liste déroulante comme l'élément sélectionné.OriginalL'auteur Mamta D