BindingSource.List Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the list that the connector is bound to.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public IList List { get; }

Property Value

Type: System.Collections.IList

An IList that represents the list, or null if there is no underlying list associated with this BindingSource.

The BindingSource class uniformly handles different data sources. Ideally the List property should be set to a general IList. However, sometimes it may be necessary to cast this property to a more specific type. The following table shows the underlying list type, which depends on the type or value of the data source.

Data source type

Underlying list description

DataSource and DataMember are null

An empty ArrayList.

DataSource is null, but DataMember is not null

None; an attempt to get the List will throw an ArgumentException.

An Array instance

An Array.

An IListSource instance

The return value from a call to the GetList method of this IListSource instance.

An IBindingList instance

An IBindingList.

An IList instance

An IList.

A non-IList instance of type "T"

A BindingList<T> with one element.

An ICustomTypeDescriptor instance

An ArrayList with one element.

An IEnumerable

An ArrayList with the elements copied over.

The Array type with DataMember of item type "T"

A BindingList<T>.

A Type that represents an IListSource or ITypedList

An instance created by a call to the CreateInstance(Type) method of the Activator class. A NotSupportedException may be thrown.

The IList type with DataMember of item type "T"


A non-IList type

A BindingList<T>.

The ICustomTypeDescriptor type

None; an attempt to get the List will throw an NotSupportedException.

If the type retrieved is the IList interface, the underlying collection may be more complex, such as an ArrayList or DataView class.

The following code example demonstrates the List, RemoveAt, and Count members. To run this example, paste the code into a form that contains a BindingSource named BindingSource1, two labels named label1 and label2, and a button named button1. Associate the button1_Click method with the Click event for button1. Visual Basic users will need to add a reference to System.Data.dll.

private void button1_Click(object sender, EventArgs e)
    // Create the connection string, data adapter and data table.
    SqlConnection connectionString =
         new SqlConnection("Initial Catalog=Northwind;" +
         "Data Source=localhost;Integrated Security=SSPI;");
    SqlDataAdapter customersTableAdapter =
        new SqlDataAdapter("Select * from Customers", connectionString);
    DataTable customerTable = new DataTable();

    // Fill the the adapter with the contents of the customer table.

    // Set data source for BindingSource1.
    BindingSource1.DataSource = customerTable;

    // Set the label text to the number of items in the collection before
    // an item is removed.
    label1.Text = "Starting count: " + BindingSource1.Count.ToString();

    // Access the List property and remove an item.

    // Remove an item directly from the BindingSource. 
    // This is equivalent to the previous line of code.

    // Show the new count.
    label2.Text = "Count after removal: " + BindingSource1.Count.ToString();

.NET Framework
Available since 2.0
Return to top