2010-07-02 13 views

risposta

11

È possibile ottenere l'accesso alla TextBox del ComboBox utilizzando:

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

Quindi è possibile accedere alla proprietà SelectedText di quel TextBox:

var selectedText = edit.SelectedText; 
+1

Grazie. Funziona perfettamente – 02Anant

+1

Questo funziona solo se il tuo ComboBox è già mostrato (cioè viene generato dal suo ControlTemplate), quindi non puoi fare qualcosa come creare un ComboBox e concentrarti immediatamente sul suo TextBox – hillin

1

Poiché WPF è "senza look" è possibile visualizzare gli elementi della casella combinata in qualsiasi modo si desideri. ci può o non può essere un elemento di testo.

MyCombo.SelectedText non ha senso se ad esempio si visualizzano le icone.

Quello che vuoi è ComboBox.SelectedItem e quindi accedi al tuo oggetto. ad esempio, se si utilizza un backing list di oggetti "People" ... MyComboBox.SelectedItem.PersonName

in genere, l'oggetto Selected è un database per il modello dell'oggetto o un altro controllo.

+0

Ho ricevuto la risposta nel post sopra. Ho bisogno di SelectedText dal ComboBox per elaborarli ulteriormente, quando ComboBox è in modalità Modifica. – 02Anant

0

Non esiste una proprietà denominata SelectedText ma è possibile acquistarla tramite il metodo ComboBox.SelectedValue.ToString(). È perché i valori di una combobox sono di default del tipo Object, quindi dobbiamo tipizzarlo adeguatamente.

+1

Il non è completamente vero. Se si utilizza un modello di articolo personalizzato, il codice non corrisponderà alla stringa sottoposta a rendering. Idealmente, dovresti essere così che puoi, ad esempio, inserire gli oggetti Employee nell'elenco invece di un gruppo di stringhe generate personalizzate. – Rich

0

Utilizzare questa:

ComboBoxItem Item = (ComboBoxItem) YourComboBoxName.SelectedValue; 

Allora questo:

Console.WriteLine(Item.Content); 
0

Perché non provare:

string selectedtext= Combobox.Text; 

Funziona per me.

Problemi correlati