¿Cómo cancelar la selección en “Drop Down”?
Cuando se introduce un valor en el ComboBox y se hace clic en el botón Desplegar, se seleccionará todo el texto.
¿Cómo podría eliminar este efecto o cancelar la selección después de hacer clic en el botón Desplegar?
La forma que conozco es restablecer “CaretIndex”.
var cmbTextBox = (TextBox)com.Template.FindName("PART_EditableTextBox", com);
cmbTextBox.CaretIndex = com.Text.Length;
Quiero saber si hay alguna solución que utilice “Binding” (MVVM) para lograrlo, en lugar de acceder a la instancia de ComboBox.
davy.ai
Una solución podría ser crear un control ComboBox personalizado y anular su plantilla para vincular la propiedad CaretIndex del TextBox interno a una propiedad en el ViewModel. De esta manera, puede manejar la lógica de restablecimiento de CaretIndex en el ViewModel, sin tener que acceder a la instancia del ComboBox.
Aquí están los pasos para lograrlo:
Cuando el usuario hace clic en el botón Desplegable, la propiedad CaretIndex se actualizará con el valor Length de Text en el ViewModel, y el cursor del TextBox se posicionará al final del texto.