2010-07-02 5 views

Répondre

11

Vous pouvez accéder à la zone de texte du ComboBox en utilisant:

var edit = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo); 

Ensuite, vous pouvez accéder à la propriété SelectedText de cette TextBox:

var selectedText = edit.SelectedText; 
+1

Merci. Son fonctionnement parfait – 02Anant

+1

Cela ne fonctionne que si votre ComboBox est déjà affichée (c'est-à-dire qu'il est généré à partir de son ControlTemplate), donc vous ne pouvez pas faire quelque chose comme créer un ComboBox et se concentrer immédiatement sur son TextBox – hillin

1

Parce que WPF est "lookless" vous pouvez afficher vos articles de combobox de quelque manière que vous le souhaitez. il peut y avoir ou non un élément de texte.

MyCombo.SelectedText n'a aucun sens si vous y affichez des icônes, par exemple.

Ce que vous voulez est ComboBox.SelectedItem, puis accédez à votre objet. Par exemple, si vous utilisez une liste de sauvegarde des objets "Personnes" .... MyComboBox.SelectedItem.PersonName

Généralement, SelectedItem est databound à votre modèle d'objet ou à un autre contrôle.

+0

J'ai reçu la réponse dans le message ci-dessus. J'ai besoin de SelectedText de la ComboBox pour les traiter plus loin, lorsque ComboBox est en mode Edition. – 02Anant

0

Il n'existe aucune propriété appelée le texte selectedText mais vous pouvez l'obtenir par la méthode ComboBox.SelectedValue.ToString(). C'est parce que les valeurs d'une liste déroulante sont par défaut du type Objet, donc nous devons le classer correctement.

+1

Ce n'est pas complètement vrai. Si vous utilisez un modèle d'élément personnalisé, votre code ne correspondra pas à la chaîne rendue. Idéalement, vous devriez être ainsi vous pouvez, par exemple, mettre des objets Employés dans la liste au lieu d'un tas de chaînes personnalisées. – Rich

0

Utilisez ceci:

ComboBoxItem Item = (ComboBoxItem) YourComboBoxName.SelectedValue; 

Puis ceci:

Console.WriteLine(Item.Content); 
0

Pourquoi ne pas essayer:

string selectedtext= Combobox.Text; 

Il fonctionne pour moi.

Questions connexes