wpf - todas - openoffice numerar paginas a partir de la segunda
¿Cómo paginar una ObservableCollection? (1)
Esta instalación no está disponible directamente en la clase base ObservableCollecton. Puede extender el ObservableCollection y crear una Colección personalizada que lo haga. Es necesario ocultar la Colección original dentro de esta nueva clase y, en función de un FromIndex y un ToIndex, se debe agregar dinámicamente el rango de elementos a la clase. Reemplazar InsertItem y RemoveItem. Estoy dando una versión no probada a continuación. Pero por favor toma esto como un pseudo código.
//This class represents a single Page collection, but have the entire items available in the originalCollection
public class PaginatedObservableCollection : ObservableCollection<object>
{
private ObservableCollection<object> originalCollection;
public int CurrentPage { get; set; }
public int CountPerPage { get; set; }
protected override void InsertItem(int index, object item)
{
//Check if the Index is with in the current Page then add to the collection as bellow. And add to the originalCollection also
base.InsertItem(index, item);
}
protected override void RemoveItem(int index)
{
//Check if the Index is with in the current Page range then remove from the collection as bellow. And remove from the originalCollection also
base.RemoveItem(index);
}
}
ACTUALIZACIÓN: Tengo una publicación en el blog sobre este tema aquí - http://jobijoy.blogspot.com/2008/12/paginated-observablecollection.html y el código fuente se ha subido a Codeplex .
Tengo un ListBox con demasiados elementos y la UI se vuelve cada vez más lenta (la virtualización está activada, etc.). Así que estaba pensando en mostrar solo los primeros 20 elementos y permitir al usuario navegar a través del conjunto de resultados (es decir, ObservableCollection).
¿Alguien sabe si existe un mecanismo de paginación para ObservableCollection? ¿Alguien ha hecho eso antes?
¡Gracias!