IBindingList Interface
Provides the features required to support both complex and simple scenarios when binding to a data source.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | AllowEdit | Gets whether you can update items in the list. |
![]() | AllowNew | Gets whether you can add items to the list using AddNew. |
![]() | AllowRemove | |
![]() | Count | Gets the number of elements contained in the ICollection.(Inherited from ICollection.) |
![]() | IsFixedSize | |
![]() | IsReadOnly | |
![]() | IsSorted | Gets whether the items in the list are sorted. |
![]() | IsSynchronized | Gets a value indicating whether access to the ICollection is synchronized (thread safe).(Inherited from ICollection.) |
![]() | Item(Int32) | Gets or sets the element at the specified index.(Inherited from IList.) |
![]() | SortDirection | Gets the direction of the sort. |
![]() | SortProperty | Gets the PropertyDescriptor that is being used for sorting. |
![]() | SupportsChangeNotification | Gets whether a ListChanged event is raised when the list changes or an item in the list changes. |
![]() | SupportsSearching | Gets whether the list supports searching using the Find method. |
![]() | SupportsSorting | Gets whether the list supports sorting. |
![]() | SyncRoot | Gets an object that can be used to synchronize access to the ICollection.(Inherited from ICollection.) |
| Name | Description | |
|---|---|---|
![]() | Add(Object) | |
![]() | AddIndex(PropertyDescriptor) | Adds the PropertyDescriptor to the indexes used for searching. |
![]() | AddNew() | Adds a new item to the list. |
![]() | ApplySort(PropertyDescriptor, ListSortDirection) | Sorts the list based on a PropertyDescriptor and a ListSortDirection. |
![]() | Clear() | |
![]() | Contains(Object) | |
![]() | CopyTo(Array, Int32) | Copies the elements of the ICollection to an Array, starting at a particular Array index.(Inherited from ICollection.) |
![]() | Find(PropertyDescriptor, Object) | Returns the index of the row that has the given PropertyDescriptor. |
![]() | GetEnumerator() | Returns an enumerator that iterates through a collection.(Inherited from IEnumerable.) |
![]() | IndexOf(Object) | |
![]() | Insert(Int32, Object) | |
![]() | Remove(Object) | |
![]() | RemoveAt(Int32) | |
![]() | RemoveIndex(PropertyDescriptor) | Removes the PropertyDescriptor from the indexes used for searching. |
![]() | RemoveSort() | Removes any sort applied using ApplySort. |
| Name | Description | |
|---|---|---|
![]() | ListChanged | Occurs when the list changes or an item in the list changes. |
| Name | Description | |
|---|---|---|
![]() | AsParallel() | Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.) |
![]() | AsQueryable() | Overloaded. Converts an IEnumerable to an IQueryable.(Defined by Queryable.) |
![]() | Cast<'TResult>() | Casts the elements of an IEnumerable to the specified type.(Defined by Enumerable.) |
![]() | OfType<'TResult>() | Filters the elements of an IEnumerable based on a specified type.(Defined by Enumerable.) |
This interface is implemented by the DataView class. Implementation of a method should exhibit the same behavior as the implementation of that method in the DataView class.
When you call the ApplySort or RemoveSort methods, you should raise a ListChanged event with the Reset enumeration.
When you call the AddNew method, you should raise a ListChanged event with the ItemAdded enumeration carrying the appropriate index. The added row is in a state where pressing the ESC on a DataGridView control can remove the new row. Raising the ListChanged event with the ItemAdded enumeration a second time on this row indicates that the item is now a row not in the "new" state.
When you remove an item or call the CancelEdit method on a new row (if that row implements IEditableObject), you should raise a ListChanged event with the ItemDeleted enumeration carrying the appropriate index.
The following example provides a simple implementation of the IBindingList interface. The CustomerList class stores customer information in a list. This example assumes that you have used the Customer class that can be found in the example in the IEditableObject class.
Available since 1.1


