Xceed Grid for WinForms v4.3 Documentation
Data binding

Welcome to Xceed Grid for WinForms v4.3 > Basic Concepts > CellEditorManagers and CellViewerManagers > How to use cell editors > ComboBoxEditor > Data binding

Binding the ComboBoxEditor to a data source will automatically populate it with items. In order to bind the combobox to a data source, the DataSource and (optionally) DataMember properties must be set. 

The following table provides a listing of the supported data sources: 

Data source Description
DataTable Represents one table of in-memory data.
DataView Represents a databindable, customized view of a DataTable for sorting, filtering, searching, editing, and navigation.
DataSet Represents an in-memory cache of data.
DataViewManager Contains a default DataViewSettingCollection for each DataTable in a DataSet.
Any component that implements the IListSource interface Provides functionality to an object to return a list that can be bound to a data source.
Any component that implements the IList interface Represents a collection of objects that can be individually accessed by index.
Jagged arrays An array whose elements are arrays.

The first example demonstrates how to bind the ComboBoxEditor to a DataSet and assumes that a dataset was created using the OleDbDataAdapter class.

See example

VB.NET
Copy Code
Dim combo As New WinComboBox()
oleDbDataAdapter1.Fill( dataSet11 )     
combo.DataSource = dataSet11
combo.DataMember = "Orders"          
combo.Location = New Point( 10 , 10 )
Me.Controls.Add( combo  )
C#
Copy Code
WinComboBox combo = new WinComboBox();    
oleDbDataAdapter1.Fill( dataSet11 );     
combo.DataSource = dataSet11;
combo.DataMember = "Orders";          
combo.Location = new Point( 10 , 10 );
this.Controls.Add( combo   ); 

The next example demonstrates how to bind the ComboBoxEditor to a Jagged array. If items are added, removed, or modified in the jagged array from outside of the combobox, then the jagged array must be reassigned to the DataSource property in order for the modifications to be reflected in the combobox.

See example

VB.NET
Copy Code
Dim combo As New WinComboBox()
Dim data(9)() As Object
data(0) = New Object(3) {"Canada", 31500000, "Ottawa", "12.2 ºc"}
data(1) = New Object(3) {"Switzerland", 7300000, "Bern", "23.3 ºc"}
data(2) = New Object(3) {"France", 59500000, "Paris", "27.3 ºc"}
data(3) = New Object(3) {"USA", 278000000, "Washington", "14.1 ºc"}
data(4) = New Object(3) {"UK", 59700000, "London", "23.7 ºc"}
data(5) = New Object(3) {"Belgium", 10300000, "Brussels", "21.8 ºc"}
data(6) = New Object(3) {"Italy", 57700000, "Rome", "29.6 ºc"}
data(7) = New Object(3) {"Spain", 40000000, "Madrid", "31.8 ºc"}
data(8) = New Object(3) {"Germany", 83000000, "Berlin", "25.1 ºc"}
data(9) = New Object(3) {"Japan", 126800000, "Tokyo", "17.2 ºc"}    
combo.DataSource = data     
combo.Location = New Point( 10 ,10 )
Me.Controls.Add( combo )
C#
Copy Code
WinComboBox combo = new WinComboBox();
object[][] data = new object[ 10 ][] {
           new object[ 4 ] { "Canada" , 31500000 , "Ottawa" , "12.2 ºc" },
           new object[ 4 ] { "Switzerland" , 7300000, "Bern"  , "23.3 ºc"},
           new object[ 4 ] { "France" , 59500000 , "Paris" , "27.3 ºc" } ,
           new object[ 4 ] { "USA" , 278000000 , "Washington" , "14.1 ºc" } ,
           new object[ 4 ] { "UK" , 59700000, "London" , "23.7 ºc" } ,
           new object[ 4 ] { "Belgium" , 10300000, "Brussels" , "21.8 ºc" } ,
           new object[ 4 ] { "Italy" , 57700000 , "Rome" , "29.6 ºc"} ,
           new object[ 4 ] { "Spain" , 40000000 , "Madrid" , "31.8 ºc" } ,
           new object[ 4 ] { "Germany" , 83000000, "Berlin" , "25.1 ºc" } ,
new object[ 4 ] { "Japan" , 126800000, "Tokyo" , "17.2 ºc" } };
combo.DataSource = data;
combo.Location = new Point( 10, 10 );
this.Controls.Add( combo );

In the case where the ComboBoxEditor is created using the constructor that accepts a DisplayFormat, only the columns specified by the DisplayFormat parameter will be created in the dropdown.