Hace algunos días, durante el desarrollo de un proyecto, me di cuenta que este es un control que debería sin duda, estar entre los controles de WPF, sin embargo, otra es la realidad.
Así que, en este post, crearemos un Autocomplete TextBox de una manera muy pero muy sencilla, de hecho, será un ComboBox el que utilizaremos para este fin:
1.- En primer lugar, he creado un ComboBox, al cual le he agregado algunos elementos del tipo TextBlock:
Con esto tendremos un ComboBox común y corriente:
2.- Lo único que debemos hacer, es cambiar 2 propiedades del ComboBox, a verdaderas, las cuales son “IsEditable” y “StaysOpenOnEdit”
3.- Ponerle un nombre al ComboBox (En mi caso le he puesto miComboBox), y posteriormente agregar un evento del tipo GotFocus, con el siguiente código:
1: private void miComboBox_GotFocus(object sender, System.Windows.RoutedEventArgs e)
2: {
3: miComboBox.IsDropDownOpen = true;
4: }
Esto nos servirá, para que la lista sea abierta cada vez que entremos en el ComboBox.
4.- Editar la copia del ComboBox
y eliminar el elemento ToggleButton:
5.- Todo listo, a probarlo!!!!
Wow, funciona de maravilla 😀
En el siguiente post, mostraré cómo usarlo de una manera más práctica ;), hasta entonces, nos vemos.
Salu2
Héctor Uriel Pérez Rojas
Pingback: Duda en el blog « Héctor Uriel Pérez Rojas Weblog
Hey viejo como vamos,
Qué bueno tu post, pero tengo un pequeño problema… necesito hacer justamente esto del auotcomplete pero no dispongo de Blend para hacerlo, sino de Visual 2008, así que desde la parte de “4.- Editar la copia del ComboBox” quedé completamente perdido porque no tengo idea de cómo hacerlo en el VS. Alguna idea o ayuda?
Salu2 desde Colombia!!!
Jeje, claro amigo, he subido la solución aquí:
http://rapidshare.com/files/353590737/Ejemplo_TextBoxes.zip
Espero que te ayude 😉
Salu2
Por cierto Edwin, interesante blog jeje, salu2 hasta Colombia desde México 😉
Hola,
Muy buena explicación!!!
me ayudó mucho en mi proyectito….
Saludos!!!
Hola! me alegra que te haya servido =) éxito, un abrazo
Salu2!
GRACIAS D:, estaba que vomitaba al no encontrar una solución, y tu post lo resolvio todo, te debo una buena buena xD