2010-08-10 11 views
5

Mi combobox WPF está lleno con un conjunto diferente de cadenas cada clic de un botón. También hay otros controles en la ventana. El cuadro combinado es el "primero" (arriba) en la ventana, pero el texto no se resalta. Cuando el usuario hace pestañas a través de los controles, el texto SI aparece resaltado, pero cuando es el primero en la ventana, no lo hace.Cómo 'conseguir' el combobox WPF PART_EditableTextbox porque el cuadro combinado no se resalta?

Tal vez necesito forzar un punto culminante en el control de cuadro de texto individual 'dentro' del cuadro combinado, pero ¿cómo haré esto? No pude encontrar la "estructura" interna de este control en ninguna parte. ¿Alguien podría ayudar aquí?

Jack

Respuesta

1

No estoy seguro de que es la mejor solución, pero se puede usar FrameworkElement.FindName para acceder al control secundario - está garantizado que estar presente en un cuadro combinado, ya que es una parte constitutiva de la llave controlar.

Dicho esto, ¿no es mejor intentar y llamar a .Focus() en el control? Es probable que por eso cuando se tabula, se proporcione el resaltado.

Otra opción es derivar de ComboBox y exponer el cuadro de texto secundario como una propiedad que le permite establecer su selección, o agregar un método directamente al cuadro combinado para configurarlo por usted.

24

para obtener el cuadro de texto del cuadro combinado se puede usar

TextBox TxtBox = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo); 
+7

Durante la creación de (Héctor) de la plantilla de cuadro combinado es nulo - así que ¿cómo podría uno conseguirlo durante la creación? – Sam

+0

^Desafortunadamente no puedes, ya que aún no se ha creado. – Asheh

+1

Puede sobrescribir/escuchar 'OnApplyTemplate' –

Cuestiones relacionadas