2011-04-07 34 views
6

¿Es posible 'actualizar' (actualizar) una vista sin una llamada explícita al método Refresh()? El problema es que recrea una colección completa, y en la interfaz de usuario, la fila seleccionada no se selecciona. Tengo una vista de lista compleja (cada fila contiene otra sublista) y cuando llamo a Refresh(), la selección en subpáginas desaparece. Borrar las descripciones de Sort y agregarlas de nuevo manualmente no funciona para mí (parece que Clear() y Add() clasifican los métodos de la descripción llamadas Refresh() internamente)WPF Refresh CollectionView sin recreación explícita (llamada al método Refresh())

Entonces, ¿hay alguna posibilidad de que la vista se actualice sin recreación?

Mi situación: Uso de Dispatcher.Timer Estoy actualizando manualmente todas las propiedades de cada elemento (para evitar que desaparezca la selección), luego actualizo la propiedad list-type de un elemento (propiedad con otra colección, se actualiza 'manualmente 'también) y luego necesito actualizar una vista de alguna manera, cuando llamo a Refresh() en la subcolección, todo está bien, pero también necesito actualizar una colección de alto nivel para obtener descripciones de clasificación aplicadas al nivel superior colección, que probablemente fue cambiada.

Respuesta

8

encontrado una solución en esta gran entrada de blog: DrWPF

1

Otra opción es utilizar ContinuousLinq para mantener la vista ordenada/agrupado en todo momento.