2010-07-02 22 views

Respuesta

11

Puede obtener acceso al cuadro de texto del cuadro combinado mediante el uso de:

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

A continuación, puede acceder a la propiedad SelectedText de ese Cuadro de texto:

var selectedText = edit.SelectedText; 
+1

Gracias. Su funcionamiento Perfecto – 02Anant

+1

Esto solo funciona si su ComboBox ya se muestra (es decir, se genera desde su ControlTemplate), por lo que no puede hacer algo como crear un ComboBox y centrarse en su TextBox inmediatamente – hillin

1

Debido a WPF es "lookless" se pueden mostrar sus artículos ComboBox en cualquier manera que usted desee. puede haber o no un elemento de texto.

MyCombo.SelectedText no tiene ningún sentido si, por ejemplo, muestra íconos allí.

Lo que quiere es ComboBox.SelectedItem y luego acceda a su objeto. por ejemplo, si está utilizando una lista de respaldo de objetos "Personas" ... MyComboBox.SelectedItem.PersonName

Normalmente, SelectedItem está vinculado a su modelo de objeto oa otro control.

+0

Obtuve la respuesta en la publicación anterior. Necesito SelectedText del ComboBox para procesarlos más, cuando ComboBox está en modo de edición. – 02Anant

0

No hay ninguna propiedad llamada el texto seleccionado, pero puede hacerlo mediante el método ComboBox.SelectedValue.ToString(). Se debe a que los valores de un cuadro combinado son por defecto del tipo Objeto, por lo que debemos encasillarlo adecuadamente.

+1

El no es completamente cierto. Si está utilizando una plantilla de artículo personalizada, su código no coincidirá con la cadena representada. Idealmente, debe ser así para, por ejemplo, poner objetos Employee en la lista en lugar de un conjunto de cadenas generadas a medida. – Rich

0

Utilice esta:

ComboBoxItem Item = (ComboBoxItem) YourComboBoxName.SelectedValue; 

Entonces esto:

Console.WriteLine(Item.Content); 
0

Por qué no pruebas:

string selectedtext= Combobox.Text; 

Funciona para mí.

Cuestiones relacionadas