En la actualidad tengo dos cuadros de lista WPF imitando la siguiente funcionalidadAumento del rendimiento ObservableCollection WPF
estoy usando 2 ObservableCollections para permitir a los usuarios seleccionar cualquier elemento que requieren (flexibilidad es la clave aquí). El principal problema es que tengo miles de artículos que se agrupan en los dos cuadros de lista. En general, el diseño funciona muy bien (con algunas docenas de elementos), pero mi obstáculo es cuando un usuario copia todos los elementos disponibles de izquierda a derecha a medida que la pantalla se congela (¿hora de ejecutar en un hilo diferente?).
En cuanto a ObservableCollection carece de un método AddRange y hay varias implementaciones disponibles en Internet. También sé que el evento CollectionChanged se dispara innecesariamente ya que cada elemento se copia horriblemente sobre el rendimiento de drenaje.
Es posible que tenga que permitir a los usuarios elegir entre grupos de más de 10 000 elementos en el futuro, lo cual suena como una mala idea, pero no es negociable ya que la agrupación en el listbox (CollectionViewSource) funciona realmente bien, pero tiene el efecto secundario de conmutación fuera la virtualización tanto de los cuadros de lista
¿Qué puedo hacer para mejorar el rendimiento cuando se carga un cuadro de lista con miles de artículos cuando enlace de datos a un ObservableCollection? ¿Hay implementaciones de tipo AddRange que recomendarías? ¿Es la única opción que tengo aquí para ejecutar esto en un hilo de fondo que parece caro porque no estoy cargando datos de una base de datos?
Ver este http://stackoverflow.com/questions/1007691/observablecollection-databinding-performance – Sauron