This documentation is archived and is not being maintained.

BindingSource.List Property

Note: This property is new in the .NET Framework version 2.0.

Gets the list that the connector is bound to.

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

public IList List { get; }
/** @property */
public IList get_List ()

public function get List () : IList

Property Value

An IList that represents the list, or a null reference (Nothing in Visual Basic) 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 a null reference (Nothing in Visual Basic)

An empty ArrayList.

DataSource is a null reference (Nothing in Visual Basic), but DataMember is not a null reference (Nothing in Visual Basic)

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 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.

A Type that represents an IListSource or ITypedList

An instance created by a call to the CreateInstance 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.

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.

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

.NET Compact Framework

Supported in: 2.0