The PagedDataSource class wraps a System.Collections.ICollection data source to implement "paged views" using the best available interface to enumerate over the data. This class uses indexed access if it is available (as in classes derived from System.Array or implementing System.Collections.IList) or the System.Collections.IEnumerable interface if indexed access is not available.
This class is used internally by the DataGrid control to provide its paging abilities. It is not used in your code unless you develop a data-bound control that supports paging.
public sealed class PagedDataSource : ICollection, IEnumerable, System.ComponentModel.ITypedList { // Public Constructors public PagedDataSource( ); // Public Instance Properties public bool AllowCustomPaging{set; get; } public bool AllowPaging{set; get; } public int Count{get; } // implements ICollection public int CurrentPageIndex{set; get; } public IEnumerable DataSource{set; get; } public int DataSourceCount{get; } public int FirstIndexInPage{get; } public bool IsCustomPagingEnabled{get; } public bool IsFirstPage{get; } public bool IsLastPage{get; } public bool IsPagingEnabled{get; } public bool IsReadOnly{get; } public bool IsSynchronized{get; } // implements ICollection public int PageCount{get; } public int PageSize{set; get; } public object SyncRoot{get; } // implements ICollection public int VirtualCount{set; get; } // Public Instance Methods public void CopyTo(Array array, int index); // implements ICollection public IEnumerator GetEnumerator( ); // implements IEnumerable public PropertyDescriptorCollection GetItemProperties(System.ComponentModel.PropertyDescriptor[ ] listAccessors); // implements System.ComponentModel.ITypedList public string GetListName(System.ComponentModel.PropertyDescriptor[ ] listAccessors); // implements System.ComponentModel.ITypedList }