64 votes

Obtenir la valeur sélectionnée à partir de la boîte combo en c# wpf

je pense que cela pourrait être une question stupide, mais je ne peux pas le trouver sur internet.

J'ai commencé à utiliser WPF formes au lieu de WF formes. Dans un WF forme seulement je pouvais faire:

ComboBox.SelectedValue.toString();

et ce serait bien fonctionner.

Comment dois-je faire dans WPF, il ne semble pas avoir l'option.

Merci

91voto

Boardy Points 5332

J'ai pensé à elle qu'il semble un peu étrange façon de faire par rapport à l'ancien WF formes.

Ci-dessous comment j'ai fait:

            ComboBoxItem typeItem = (ComboBoxItem)cboType.SelectedItem;
            string value = typeItem.Content.ToString();

Merci pour votre aide

85voto

Moile Points 271

Eh bien.. j'ai trouvé une solution plus simple.

String s = comboBox1.Text;

De cette façon, j'obtiens la valeur sélectionnée en tant que chaîne de caractères.

11voto

The_Smallest Points 3132

S'assurer, que, dans votre fichier xaml vous avez défini le nom de votre zone de liste déroulante

<ComboBox Height="23" Name="comboBox" />

Dans votre code, vous pouvez accéder à l'élément sélectionné à l'aide de SelectedItem de la propriété

MessageBox.Show(comboBox.SelectedItem.ToSting());

7voto

Benny Points 1296

Cela dépend de ce que vous avez lié à votre zone de liste déroulante. Si vous avez lié un objet appelé MyObject, et d'avoir, disons, une propriété appelée Nom d'effectuer les opérations suivantes:

MyObject mo = myListBox.SelectedItem as MyObject;
return mo.Name;

3voto

Myron William Points 21

La résolution de ce problème est simple, je n'ai fait d'ajouter "SelectedValuePath" de mon code XAML et le lier à mon modèle de propriété que je veux revenir à la liste déroulante.

<ComboBox SelectedValuePath="_Department" DisplayMemberPath="_Department" 
 Height="23" HorizontalAlignment="Left" ItemsSource="{Binding}"
 Margin="-58,1,0,5" Name="_DepartmentComboBox" VerticalAlignment="Center"
 Width="268"/>

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