This interface is implemented by classes such as
System.Data.DataView that wish to support
list-like data binding. It is derived from the standard collection
interfaces to present basic collection facilities such as
Add() and Remove().
In addition to this, it has properties that determine whether the
class will AllowEdit or
AllowNew items to be added.
AllowRemove determines whether you can remove
items from the list, and IsSorted determines
whether the list items have been sorted. Note that this does not
imply any kind of auto-sorting behavior—it just determines
whether the list has been sorted. SupportsSorting
determines whether the list can be sorted. For sorted lists, you can
specify the SortDirection and the
SortProperty (the property of the elements in the
list that provides the sort data). To apply the sort, use the
ApplySort() and RemoveSort()
methods.
Methods are provided to AddNew() items to the
list and Find() a row with a particular
PropertyDescriptor.
You can also use AddIndex() and
RemoveIndex() to manage indexes to improve the
search capabilities of your list. Your particular class
doesn't actually have to do anything in the
implementation of these methods if it doesn't
support indexes.
public interface IBindingList : IList, ICollection, IEnumerable {
// Public Instance Properties
public bool AllowEdit{get; }
public bool AllowNew{get; }
public bool AllowRemove{get; }
public bool IsSorted{get; }
public ListSortDirection SortDirection{get; }
public PropertyDescriptor SortProperty{get; }
public bool SupportsChangeNotification{get; }
public bool SupportsSearching{get; }
public bool SupportsSorting{get; }
// Public Instance Methods
public void AddIndex(PropertyDescriptor property);
public object AddNew();
public void ApplySort(PropertyDescriptor property, ListSortDirection direction);
public int Find(PropertyDescriptor property, object key);
public void RemoveIndex(PropertyDescriptor property);
public void RemoveSort();
// Events
public event ListChangedEventHandler ListChanged;
}