Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Binds a ListObject control to a specified data member of a data source, and shows only specified columns of that data member.
Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)
Syntax
'Declaration
Sub SetDataBinding ( _
    dataSource As Object, _
    dataMember As String, _
    ParamArray mappedColumns As String() _
)
void SetDataBinding(
    Object dataSource,
    string dataMember,
    params string[] mappedColumns
)
Parameters
- dataSource 
 Type: System.Object- The object to use as a data source for the ListObject control. 
- dataMember 
 Type: System.String- The DataMember that specifies the property to bind to within the object returned by the DataSource. 
- mappedColumns 
 Type: array<System.String[]- Names of columns in the data member that you want to display in the ListObject control. To add an unmapped column, include an empty string in the array. 
Exceptions
| Exception | Condition | 
|---|---|
| SetDataBindingFailedException | Could not bind to the specified data source. | 
| ArgumentException | One or more of the arguments are invalid. | 
| ArgumentNullException | The dataSource argument is nulla null reference (Nothing in Visual Basic). | 
Remarks
The dataSource parameter can be any object that implements IList, IListSource, IBindingList, or IEnumerable.
The dataMember parameter must be a property of the data source that returns a bindable collection. For example, a DataSet source has tables as data members.
Examples
The following code example creates a DataSet, a DataTable, and a ListObject. It then binds the ListObject to the DataSet and the DataTable, but only includes one of the two possible table columns in the ListObject.
This example is for a document-level customization.
Private Sub ListObject_SetDataBinding3()
        Dim Ages As Integer() = {32, 44, 28, 61}
        Dim Names As String() = {"Reggie", "Sally", _
            "Henry", "Christine"}
        ' Create a data table with two columns. 
        Dim ds As New DataSet()
        Dim table As DataTable = ds.Tables.Add("Customers")
        Dim column1 As New DataColumn("Names", GetType(String))
        Dim column2 As New DataColumn("Ages", GetType(Integer))
        table.Columns.Add(column1)
        table.Columns.Add(column2)
        ' Add the four rows of data to the table. 
        Dim row As DataRow
        Dim i As Integer 
        For i = 0 To 3
            row = table.NewRow()
            row("Names") = Names(i)
            row("Ages") = Ages(i)
            table.Rows.Add(row)
        Next i
        ' Create the list object. 
        Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
            Me.Controls.AddListObject(Me.Range("A1", "B4"), "List1")
        ' Bind the list object to the table. 
        Dim mappedColumn As String() = {"Names"}
        List1.SetDataBinding(ds, "Customers", mappedColumn)
    End Sub
private void ListObject_SetDataBinding3()
{
    int[] Ages = { 32, 44, 28, 61 };
    string[] Names = { "Reggie", "Sally", "Henry", "Christine" };
    // Create a data table with two columns.
    DataSet ds = new DataSet();
    DataTable table = ds.Tables.Add("Customers");
    DataColumn column1 = new DataColumn("Names", typeof(string));
    DataColumn column2 = new DataColumn("Ages", typeof(int));
    table.Columns.Add(column1);
    table.Columns.Add(column2);
    // Add the four rows of data to the table.
    DataRow row;
    for (int i = 0; i < 4; i++)
    {
        row = table.NewRow();
        row["Names"] = Names[i];
        row["Ages"] = Ages[i];
        table.Rows.Add(row);
    }
    Microsoft.Office.Tools.Excel.ListObject list1 =
        this.Controls.AddListObject(this.Range["A1", "B4"], "list1");
    // Bind the list object to the table. 
    string[] mappedColumn = { "Names" };
    list1.SetDataBinding(ds, "Customers", mappedColumn);
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.