BindingSource.List BindingSource.List BindingSource.List BindingSource.List Property

Definition

Gets the list that the connector is bound to.

public:
 property System::Collections::IList ^ List { System::Collections::IList ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Collections.IList List { get; }
member this.List : System.Collections.IList
Public ReadOnly Property List As IList

Property Value

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

Examples

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 adapter with the contents of the customer table.
    customersTableAdapter.Fill(customerTable);

    // 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.
    BindingSource1.List.RemoveAt(4);

    // Remove an item directly from the BindingSource. 
    // This is equivalent to the previous line of code.
    BindingSource1.RemoveAt(4);

    // Show the new count.
    label2.Text = "Count after removal: " + BindingSource1.Count.ToString();
}
    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click

        ' Create the connection string, data adapter and data table.
        Dim connectionString As New SqlConnection("Initial Catalog=Northwind;" & _
            "Data Source=localhost;Integrated Security=SSPI;")
        Dim customersTableAdapter As New SqlDataAdapter("Select * from Customers", _
            connectionString)
        Dim customerTable As New DataTable()

        ' Fill the adapter with the contents of the customer table.
        customersTableAdapter.Fill(customerTable)

        ' 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.
        BindingSource1.List.RemoveAt(4)

        ' Remove an item directly from the BindingSource. 
        ' This is equivalent to the previous line of code.
        BindingSource1.RemoveAt(4)

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

    End Sub
End Class

Remarks

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"

-or-

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.

Applies to

See also