Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

BindingList(Of T) Class

Provides a generic collection that supports data binding.

System.Object
  System.Collections.ObjectModel.Collection(Of T)
    System.ComponentModel.BindingList(Of T)

Namespace:  System.ComponentModel
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.

  NameDescription
Public methodSupported by the XNA FrameworkBindingList(Of T)Initializes a new instance of the BindingList(Of T) class using default values.
Public methodSupported by the XNA FrameworkBindingList(Of T)(IList(Of T))Initializes a new instance of the BindingList(Of T) class with the specified list.
Top

  NameDescription
Public propertySupported by the XNA FrameworkAllowEditGets or sets a value indicating whether items in the list can be edited.
Public propertySupported by the XNA FrameworkAllowNewGets or sets a value indicating whether you can add items to the list using the AddNew method.
Public propertySupported by the XNA FrameworkAllowRemoveGets or sets a value indicating whether you can remove items from the collection.
Public propertySupported by the XNA FrameworkCountGets the number of elements actually contained in the Collection(Of T). (Inherited from Collection(Of T).)
Protected propertySupported by the XNA FrameworkIsSortedCoreGets a value indicating whether the list is sorted.
Public propertySupported by the XNA FrameworkItemGets or sets the element at the specified index. (Inherited from Collection(Of T).)
Protected propertySupported by the XNA FrameworkItemsGets a IList(Of T) wrapper around the Collection(Of T). (Inherited from Collection(Of T).)
Public propertySupported by the XNA FrameworkRaiseListChangedEventsGets or sets a value indicating whether adding or removing items within the list raises ListChanged events.
Protected propertySupported by the XNA FrameworkSortDirectionCoreGets the direction the list is sorted.
Protected propertySupported by the XNA FrameworkSortPropertyCoreGets the property descriptor that is used for sorting the list if sorting is implemented in a derived class; otherwise, returns Nothing.
Protected propertySupported by the XNA FrameworkSupportsChangeNotificationCoreGets a value indicating whether ListChanged events are enabled.
Protected propertySupported by the XNA FrameworkSupportsSearchingCoreGets a value indicating whether the list supports searching.
Protected propertySupported by the XNA FrameworkSupportsSortingCoreGets a value indicating whether the list supports sorting.
Top

  NameDescription
Public methodSupported by the XNA FrameworkAddAdds an object to the end of the Collection(Of T). (Inherited from Collection(Of T).)
Public methodSupported by the XNA FrameworkAddNewAdds a new item to the collection.
Protected methodSupported by the XNA FrameworkAddNewCoreAdds a new item to the end of the collection.
Protected methodSupported by the XNA FrameworkApplySortCoreSorts the items if overridden in a derived class; otherwise, throws a NotSupportedException.
Public methodSupported by the XNA FrameworkCancelNewDiscards a pending new item.
Public methodSupported by the XNA FrameworkClearRemoves all elements from the Collection(Of T). (Inherited from Collection(Of T).)
Protected methodSupported by the XNA FrameworkClearItemsRemoves all elements from the collection. (Overrides Collection(Of T).ClearItems.)
Public methodSupported by the XNA FrameworkContainsDetermines whether an element is in the Collection(Of T). (Inherited from Collection(Of T).)
Public methodSupported by the XNA FrameworkCopyToCopies 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).)
Public methodSupported by the XNA FrameworkEndNewCommits a pending new item to the collection.
Public methodSupported by the XNA FrameworkEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkFindCoreSearches 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.
Public methodSupported by the XNA FrameworkGetEnumeratorReturns an enumerator that iterates through the Collection(Of T). (Inherited from Collection(Of T).)
Public methodSupported by the XNA FrameworkGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported by the XNA FrameworkIndexOfSearches 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).)
Public methodSupported by the XNA FrameworkInsertInserts an element into the Collection(Of T) at the specified index. (Inherited from Collection(Of T).)
Protected methodSupported by the XNA FrameworkInsertItemInserts the specified item in the list at the specified index. (Overrides Collection(Of T).InsertItem(Int32, T).)
Protected methodSupported by the XNA FrameworkMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkOnAddingNewRaises the AddingNew event.
Protected methodSupported by the XNA FrameworkOnListChangedRaises the ListChanged event.
Public methodSupported by the XNA FrameworkRemoveRemoves the first occurrence of a specific object from the Collection(Of T). (Inherited from Collection(Of T).)
Public methodSupported by the XNA FrameworkRemoveAtRemoves the element at the specified index of the Collection(Of T). (Inherited from Collection(Of T).)
Protected methodSupported by the XNA FrameworkRemoveItemRemoves the item at the specified index. (Overrides Collection(Of T).RemoveItem(Int32).)
Protected methodSupported by the XNA FrameworkRemoveSortCoreRemoves any sort applied with ApplySortCore if sorting is implemented in a derived class; otherwise, raises NotSupportedException.
Public methodSupported by the XNA FrameworkResetBindingsRaises a ListChanged event of type Reset.
Public methodSupported by the XNA FrameworkResetItemRaises a ListChanged event of type ItemChanged for the item at the specified position.
Protected methodSupported by the XNA FrameworkSetItemReplaces the item at the specified index with the specified item. (Overrides Collection(Of T).SetItem(Int32, T).)
Public methodSupported by the XNA FrameworkToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public eventSupported by the XNA FrameworkAddingNewOccurs before an item is added to the list.
Public eventSupported by the XNA FrameworkListChangedOccurs when the list or an item in the list changes.
Top

  NameDescription
Public Extension MethodAsParallelEnables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension MethodAsQueryableConverts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension MethodSupported by the XNA FrameworkCast(Of TResult)Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkOfType(Of TResult)Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top

  NameDescription
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.AddIndexFor a description of this member, see AddIndex.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.AddNewAdds a new item to the list. For more information, see AddNew.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.AllowEditGets a value indicating whether items in the list can be edited.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.AllowNewGets a value indicating whether new items can be added to the list using the AddNew method.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.AllowRemoveGets a value indicating whether items can be removed from the list.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.ApplySortSorts the list based on a PropertyDescriptor and a ListSortDirection. For a complete description of this member, see ApplySort.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.FindFor a description of this member, see Find.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.IsSortedFor a description of this member, see IsSorted.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.RemoveIndexFor a description of this member, see RemoveIndex.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIBindingList.RemoveSortFor a description of this member, see RemoveSort
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.SortDirectionFor a description of this member, see SortDirection.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.SortPropertyFor a description of this member, see SortProperty.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.SupportsChangeNotificationFor a description of this member, see SupportsChangeNotification.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.SupportsSearchingFor a description of this member, see SupportsSearching.
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIBindingList.SupportsSortingFor a description of this member, see SupportsSorting.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkICollection.CopyToCopies the elements of the ICollection to an Array, starting at a particular Array index. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkICollection(Of T).IsReadOnlyGets a value indicating whether the ICollection(Of T) is read-only. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkICollection.IsSynchronizedGets a value indicating whether access to the ICollection is synchronized (thread safe). (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkICollection.SyncRootGets an object that can be used to synchronize access to the ICollection. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIEnumerable.GetEnumeratorReturns an enumerator that iterates through a collection. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIList.AddAdds an item to the IList. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIList.ContainsDetermines whether the IList contains a specific value. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIList.IndexOfDetermines the index of a specific item in the IList. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIList.InsertInserts an item into the IList at the specified index. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIList.IsFixedSizeGets a value indicating whether the IList has a fixed size. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIList.IsReadOnlyGets a value indicating whether the IList is read-only. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIList.ItemGets or sets the element at the specified index. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIList.RemoveRemoves the first occurrence of a specific object from the IList. (Inherited from Collection(Of T).)
Explicit interface implemetationPrivate propertySupported by the XNA FrameworkIRaiseItemChangedEvents.RaisesItemChangedEventsGets a value indicating whether item property value changes raise ListChanged events of type ItemChanged. This member cannot be overridden in a derived class.
Top

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.

NoteNote

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


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

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.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

Show:
© 2017 Microsoft