Estoy ansioso por encontrar algún código sólido (libre, de código abierto o tutorial/ejemplo) para hacer que un WPF Combobox autocomplete/autofiltro a medida que el usuario escribe. Pero todo lo que he probado hasta ahora ha tenido algún tipo de problema ...Combobox WPF con autocompletar/auto-filtro?
A Reusable WPF Autocomplete TextBox estuvieron cerca, pero no puede conseguirlo a work with more than one filter (más información here).
WPF autocomplete textbox/combobox no funciona para mí porque hereda de UserControl, y por lo tanto no es compatible con las plantillas de datos que necesito (para mostrar/seleccionar el valor de una propiedad para un objeto con múltiples propiedades).
Automatically Filtering a ComboBox in WPF no funcionó, ya que no parecen encontrar siempre la parte EditableTextBox del código heredado ComboBox (a través de
(TextBox)base.GetTemplateChild("PART_EditableTextBox")
que parece siempre devuelve null).Building a Filtered ComboBox for WPF simplemente se atasca en un bucle de actualización y luego se desborda la pila después de escribir unas pocas letras.
Otras cosas que he considerado:
sé que Windows Forms' Combobox control has AutoCompleteMode y pude embed it in WPF, pero no puedo imaginar que sería jugar muy bien con mis enlaces de datos de WPF.
Quizás es demasiado complejo y necesito simplificar, tal vez mediante la creación de ObservableCollections unidimensionales (propiedad única) para el ComboBoxen ... Sin embargo, el desafío de aplicar múltiples filtros (uno establecido por el valor de otro control, y uno de lo que está tipeando el usuario) a múltiples controles usando diferentes vistas del mismo DataSet requeriría una cantidad ridícula de poder de procesamiento para destruir y reconstruir la lista cada vez que el usuario escribe un personaje.
Así que ... Estoy en el final. ¿Alguna sugerencia?
Me hubiera gustado poder buscar en varios campos (por ejemplo, "valor" y "descripción"). "), no distinga entre mayúsculas y minúsculas, etc., pero es un PITA. Volviendo a esto, porque funciona como se esperaba con templates et al. – ewall
Puede filtrar en múltiples campos creando otra propiedad y uniendo los campos allí. Luego establece el campo de búsqueda a ese. Como tiene todos los campos combinados que necesita, la búsqueda funciona. Un poco de hack pero hace el trabajo. – Kelly
@ewall puedes probar https://www.nuget.org/packages/THEFilteredComboBox/ esto creamos este control porque usar las propiedades anteriores no fue suficiente –