There is a DropDownRows property that you can set. But since the list can vary from cell to cell, you have to dynamically set this property cell to cell as well.
//C#
private void gridControl1_CurrentCellShowingDropDown(object sender, GridCurrentCellShowingDropDownEventArgs e)
{
GridControlBase grid = sender as GridControlBase;
if(grid != null)
{
GridCurrentCell cc = grid.CurrentCell;
GridComboBoxCellRenderer cr = cc.Renderer as GridComboBoxCellRenderer;
if(cc != null)
{
if(cc.RowIndex == 6)
((GridComboBoxListBoxPart)cr.ListBoxPart).DropDownRows = 4;
else if(cc.RowIndex == 4)
((GridComboBoxListBoxPart)cr.ListBoxPart).DropDownRows = 7;
else if(cc.RowIndex == 2)
((GridComboBoxListBoxPart)cr.ListBoxPart).DropDownRows = 10;
else
((GridComboBoxListBoxPart)cr.ListBoxPart).DropDownRows = 6;
}
}
}
'VB.NET
Private Sub GridControl1_CurrentCellShowingDropDown(ByVal sender As Object, _
ByVal e As Syncfusion.Windows.Forms.Grid.GridCurrentCellShowingDropDownEventArgs) _
Handles GridControl1.CurrentCellShowingDropDown
Try
Dim grid As GridControlBase = sender
Dim cc As GridCurrentCell = grid.CurrentCell
Dim cr As GridComboBoxCellRenderer = cc.Renderer '
If cc.RowIndex = 6 Then
CType(cr.ListBoxPart, GridComboBoxListBoxPart).DropDownRows = 4
ElseIf cc.RowIndex = 4 Then
CType(cr.ListBoxPart, GridComboBoxListBoxPart).DropDownRows = 7
ElseIf cc.RowIndex = 2 Then
CType(cr.ListBoxPart, GridComboBoxListBoxPart).DropDownRows = 10
Else
CType(cr.ListBoxPart, GridComboBoxListBoxPart).DropDownRows = 6
End If
Catch
End Try
End Sub