BindingList(Of T) Class
Provides a generic collection that supports data binding.
System.Collections.ObjectModel.Collection(Of T)
System.ComponentModel.BindingList(Of T)
Assembly: System (in System.dll)
'Declaration <SerializableAttribute> _ <HostProtectionAttribute(SecurityAction.LinkDemand, SharedState := True)> _ Public Class BindingList(Of T) _ Inherits Collection(Of T) _ Implements IBindingList, IList, ICollection, IEnumerable, _ ICancelAddNew, IRaiseItemChangedEvents
Type Parameters
- T
The type of elements in the list.
The BindingList(Of T) type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | BindingList(Of T) | Initializes a new instance of the BindingList(Of T) class using default values. |
![]() ![]() | BindingList(Of T)(IList(Of T)) | Initializes a new instance of the BindingList(Of T) class with the specified list. |
| Name | Description | |
|---|---|---|
![]() ![]() | AllowEdit | Gets or sets a value indicating whether items in the list can be edited. |
![]() ![]() | AllowNew | Gets or sets a value indicating whether you can add items to the list using the AddNew method. |
![]() ![]() | AllowRemove | Gets or sets a value indicating whether you can remove items from the collection. |
![]() ![]() | Count | Gets the number of elements actually contained in the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | IsSortedCore | Gets a value indicating whether the list is sorted. |
![]() ![]() | Item | Gets or sets the element at the specified index. (Inherited from Collection(Of T).) |
![]() ![]() | Items | Gets a IList(Of T) wrapper around the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | RaiseListChangedEvents | Gets or sets a value indicating whether adding or removing items within the list raises ListChanged events. |
![]() ![]() | SortDirectionCore | Gets the direction the list is sorted. |
![]() ![]() | SortPropertyCore | Gets the property descriptor that is used for sorting the list if sorting is implemented in a derived class; otherwise, returns Nothing. |
![]() ![]() | SupportsChangeNotificationCore | Gets a value indicating whether ListChanged events are enabled. |
![]() ![]() | SupportsSearchingCore | Gets a value indicating whether the list supports searching. |
![]() ![]() | SupportsSortingCore | Gets a value indicating whether the list supports sorting. |
| Name | Description | |
|---|---|---|
![]() ![]() | Add | Adds an object to the end of the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | AddNew | Adds a new item to the collection. |
![]() ![]() | AddNewCore | Adds a new item to the end of the collection. |
![]() ![]() | ApplySortCore | Sorts the items if overridden in a derived class; otherwise, throws a NotSupportedException. |
![]() ![]() | CancelNew | Discards a pending new item. |
![]() ![]() | Clear | Removes all elements from the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | ClearItems | Removes all elements from the collection. (Overrides Collection(Of T).ClearItems.) |
![]() ![]() | Contains | Determines whether an element is in the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | CopyTo | Copies the entire Collection(Of T) to a compatible one-dimensional Array, starting at the specified index of the target array. (Inherited from Collection(Of T).) |
![]() ![]() | EndNew | Commits a pending new item to the collection. |
![]() ![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() | FindCore | Searches for the index of the item that has the specified property descriptor with the specified value, if searching is implemented in a derived class; otherwise, a NotSupportedException. |
![]() ![]() | GetEnumerator | Returns an enumerator that iterates through the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() | IndexOf | Searches for the specified object and returns the zero-based index of the first occurrence within the entire Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | Insert | Inserts an element into the Collection(Of T) at the specified index. (Inherited from Collection(Of T).) |
![]() ![]() | InsertItem | Inserts the specified item in the list at the specified index. (Overrides Collection(Of T).InsertItem(Int32, T).) |
![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() | OnAddingNew | Raises the AddingNew event. |
![]() ![]() | OnListChanged | Raises the ListChanged event. |
![]() ![]() | Remove | Removes the first occurrence of a specific object from the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | RemoveAt | Removes the element at the specified index of the Collection(Of T). (Inherited from Collection(Of T).) |
![]() ![]() | RemoveItem | Removes the item at the specified index. (Overrides Collection(Of T).RemoveItem(Int32).) |
![]() ![]() | RemoveSortCore | Removes any sort applied with ApplySortCore if sorting is implemented in a derived class; otherwise, raises NotSupportedException. |
![]() ![]() | ResetBindings | Raises a ListChanged event of type Reset. |
![]() ![]() | ResetItem | Raises a ListChanged event of type ItemChanged for the item at the specified position. |
![]() ![]() | SetItem | Replaces the item at the specified index with the specified item. (Overrides Collection(Of T).SetItem(Int32, T).) |
![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | AddingNew | Occurs before an item is added to the list. |
![]() ![]() | ListChanged | Occurs when the list or an item in the list changes. |
| Name | Description | |
|---|---|---|
![]() | AsParallel | Enables parallelization of a query. (Defined by ParallelEnumerable.) |
![]() | AsQueryable | Converts an IEnumerable to an IQueryable. (Defined by Queryable.) |
![]() ![]() | Cast(Of TResult) | Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.) |
![]() ![]() | OfType(Of TResult) | Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.) |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | IBindingList.AddIndex | For a description of this member, see AddIndex. |
![]() ![]() ![]() | IBindingList.AddNew | Adds a new item to the list. For more information, see AddNew. |
![]() ![]() ![]() | IBindingList.AllowEdit | Gets a value indicating whether items in the list can be edited. |
![]() ![]() ![]() | IBindingList.AllowNew | Gets a value indicating whether new items can be added to the list using the AddNew method. |
![]() ![]() ![]() | IBindingList.AllowRemove | Gets a value indicating whether items can be removed from the list. |
![]() ![]() ![]() | IBindingList.ApplySort | Sorts the list based on a PropertyDescriptor and a ListSortDirection. For a complete description of this member, see ApplySort. |
![]() ![]() ![]() | IBindingList.Find | For a description of this member, see Find. |
![]() ![]() ![]() | IBindingList.IsSorted | For a description of this member, see IsSorted. |
![]() ![]() ![]() | IBindingList.RemoveIndex | For a description of this member, see RemoveIndex. |
![]() ![]() ![]() | IBindingList.RemoveSort | For a description of this member, see RemoveSort |
![]() ![]() ![]() | IBindingList.SortDirection | For a description of this member, see SortDirection. |
![]() ![]() ![]() | IBindingList.SortProperty | For a description of this member, see SortProperty. |
![]() ![]() ![]() | IBindingList.SupportsChangeNotification | For a description of this member, see SupportsChangeNotification. |
![]() ![]() ![]() | IBindingList.SupportsSearching | For a description of this member, see SupportsSearching. |
![]() ![]() ![]() | IBindingList.SupportsSorting | For a description of this member, see SupportsSorting. |
![]() ![]() ![]() | ICollection.CopyTo | Copies the elements of the ICollection to an Array, starting at a particular Array index. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | ICollection(Of T).IsReadOnly | Gets a value indicating whether the ICollection(Of T) is read-only. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | ICollection.IsSynchronized | Gets a value indicating whether access to the ICollection is synchronized (thread safe). (Inherited from Collection(Of T).) |
![]() ![]() ![]() | ICollection.SyncRoot | Gets an object that can be used to synchronize access to the ICollection. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IEnumerable.GetEnumerator | Returns an enumerator that iterates through a collection. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.Add | Adds an item to the IList. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.Contains | Determines whether the IList contains a specific value. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.IndexOf | Determines the index of a specific item in the IList. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.Insert | Inserts an item into the IList at the specified index. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.IsFixedSize | Gets a value indicating whether the IList has a fixed size. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.IsReadOnly | Gets a value indicating whether the IList is read-only. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.Item | Gets or sets the element at the specified index. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IList.Remove | Removes the first occurrence of a specific object from the IList. (Inherited from Collection(Of T).) |
![]() ![]() ![]() | IRaiseItemChangedEvents.RaisesItemChangedEvents | Gets a value indicating whether item property value changes raise ListChanged events of type ItemChanged. This member cannot be overridden in a derived class. |
The BindingList(Of T) class can be used as a base class to create a two-way data-binding mechanism. BindingList(Of T) provides a concrete, generic implementation of the IBindingList interface. This is an alternative to implementing the complete IBindingList interface, which can be difficult because of the subtle interaction between IBindingList, IEditableObject, and the associated CurrencyManager. However, the typical solutions programmer will use a class that provides data binding functionality, such as BindingSource, instead of directly using BindingList(Of T).
BindingList(Of T) supports factory-created instances through the extensible AddNew method. (This same type of extensibility is also found in other classes, such as BindingSource) In addition, since this class implements the ICancelAddNew interface, it enables transactional commits or rollbacks of the new item through the EndNew and CancelNew methods.
Note |
|---|
The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: SharedState. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes. |
The following code example demonstrates binding to a BindingList(Of T) component containing a business object. This is a complete example that contains a Main method.
Option Explicit On Option Strict On Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Text Imports System.Windows.Forms Class Form1 Inherits Form Private textBox2 As TextBox Private listBox1 As ListBox Private WithEvents button1 As Button Private textBox1 As TextBox Private randomNumber As New Random() Public Sub New() Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.textBox1 = New System.Windows.Forms.TextBox() Me.textBox2 = New System.Windows.Forms.TextBox() Me.listBox1 = New System.Windows.Forms.ListBox() Me.button1 = New System.Windows.Forms.Button() Me.textBox1.Location = New System.Drawing.Point(169, 26) Me.textBox1.Size = New System.Drawing.Size(100, 20) Me.textBox1.Text = "Bracket" Me.textBox2.Location = New System.Drawing.Point(169, 57) Me.textBox2.ReadOnly = True Me.textBox2.Size = New System.Drawing.Size(100, 20) Me.textBox2.Text = "4343" Me.listBox1.FormattingEnabled = True Me.listBox1.Location = New System.Drawing.Point(12, 12) Me.listBox1.Size = New System.Drawing.Size(120, 95) Me.button1.Location = New System.Drawing.Point(180, 83) Me.button1.Size = New System.Drawing.Size(75, 23) Me.button1.Text = "Add New Item" Me.ClientSize = New System.Drawing.Size(292, 266) Me.Controls.Add(Me.button1) Me.Controls.Add(Me.listBox1) Me.Controls.Add(Me.textBox2) Me.Controls.Add(Me.textBox1) Me.Text = "Parts Form" AddHandler Me.Load, AddressOf Form1_Load End Sub 'New Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) InitializeListOfParts() listBox1.DataSource = listOfParts listBox1.DisplayMember = "PartName" End Sub ' Declare a new BindingListOfT with the Part business object. Private WithEvents listOfParts As BindingList(Of Part) Private Sub InitializeListOfParts() ' Create the new BindingList of Part type. listOfParts = New BindingList(Of Part) ' Allow new parts to be added, but not removed once committed. listOfParts.AllowNew = True listOfParts.AllowRemove = False ' Raise ListChanged events when new parts are added. listOfParts.RaiseListChangedEvents = True ' Do not allow parts to be edited. listOfParts.AllowEdit = False ' Add a couple of parts to the list. listOfParts.Add(New Part("Widget", 1234)) listOfParts.Add(New Part("Gadget", 5647)) End Sub ' Create a new part from the text in the two text boxes. Private Sub listOfParts_AddingNew(ByVal sender As Object, _ ByVal e As AddingNewEventArgs) Handles listOfParts.AddingNew e.NewObject = New Part(textBox1.Text, Integer.Parse(textBox2.Text)) End Sub ' Add the new part unless the part number contains ' spaces. In that case cancel the add. Private Sub button1_Click(ByVal sender As Object, _ ByVal e As EventArgs) Handles button1.Click Dim newPart As Part = listOfParts.AddNew() If newPart.PartName.Contains(" ") Then MessageBox.Show("Part names cannot contain spaces.") listOfParts.CancelNew(listOfParts.IndexOf(newPart)) Else textBox2.Text = randomNumber.Next(9999).ToString() textBox1.Text = "Enter part name" End If End Sub <STAThread()> _ Shared Sub Main() Application.EnableVisualStyles() Application.Run(New Form1()) End Sub End Class ' A simple business object for example purposes. Public Class Part Private name As String Private number As Integer Public Sub New() End Sub Public Sub New(ByVal nameForPart As String, _ ByVal numberForPart As Integer) PartName = nameForPart PartNumber = numberForPart End Sub Public Property PartName() As String Get Return name End Get Set(ByVal value As String) name = Value End Set End Property Public Property PartNumber() As Integer Get Return number End Get Set(ByVal value As Integer) number = Value End Set End Property End Class
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.










Note