Articles in this section
Category / Section

Why to lose my choice list when I try to use both the choice lists and DataSources to populate the ComboBoxes in different cells in WinForms GridControl?

2 mins read

Choice list with a combobox cell by using datasource

Normally, Essential Grid uses the same combobox for all the cells with the celltype ComboBox in the Grid. When you move from one combobox cell to another, the choicelist (or DataSource depending upon what you are using) is swapped out to reflect the settings of a new cell. When you try to swap the combobox cell by using a choicelist with a combobox cell by using a DataSource, it does not work.

Solution

To overcome this, create two ComboBox cell models, one for choicelists and another for DataSources. You can use the GridControl.CellModels.Add method to add this second celltype.

C#

//Adds a new ComboBox CellModel
this.gridControl1.CellModels.Add("ComboBoxDS", new GridComboBoxCellModel(this.gridControl1.Model));

VB

'Adds a new ComboBox CellModel
Me.gridControl1.CellModels.Add("ComboBoxDS", New GridComboBoxCellModel(Me.gridControl1.Model))

This registers a new celltype named ComboBoxDS that is just another ComboBox cell. You can use the ComboBoxDS as the celltype for your cells that require a DataSource, and use the ComboBox as the celltype for the cells that require a ChoiceList.

Adding the ChoiceList/DataSource to the ComboBox cell:

 C#

//Sets the CellType to ComboBox
this.gridControl1[2, 2].CellType = "ComboBox";
this.gridControl1[2, 3].CellType = "ComboBoxDS";
//Adds the CellValue to the Cells
this.gridControl1[2, 2].CellValue = "one";
this.gridControl1[2, 3].CellValue = "one";
//Adds the ChoiceList to the ComboBox cell
this.gridControl1[2, 2].ChoiceList =list;
//Adds the DataSource to the ComboBox cell
this.gridControl1[2, 3].DataSource = list;

VB

'Sets the CellType to ComboBox
Me.gridControl1(2, 2).CellType = "ComboBox"
Me.gridControl1(2, 3).CellType = "ComboBoxDS"
'Adds the CellValue to the Cells
Me.gridControl1(2, 2).CellValue = "one"
Me.gridControl1(2, 3).CellValue = "one"
'Adds the ChoiceList to the ComboBox cell
Me.gridControl1(2, 2).ChoiceList =list
'Adds the DataSource to the ComboBox cell
Me.gridControl1(2, 3).DataSource = list

 

Note:

This problem has been resolved in our later versions of Essential studio Grids.

 

Samples:

C#: ChoiceListDataSource-C#317625627.zip

VB: ChoiceListDataSource-VB684465365.zip

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied