0

我对 DevExpress XtraGrid 有疑问。我不会制作一列 CheckedComboBoxEdit,但我不知道如何让它们单独工作。例如,在第一行中,我的 CheckedComboBoxEdit 将包含“a”和“b”,在第二行中将包含“b”、“c”、“d”。

我以为我可以这样使用:

    List<CheckedListBoxItem> listOfCheckedItems = new List<CheckedListBoxItem>();
    listOfCheckedItems.Add( new CheckedListBoxItem( "test" ) );
    CheckedComboBoxEdit checkedCombo = new CheckedComboBoxEdit();
    gridView1.AddNewRow();
    gridView1.SetRowCellValue( gridView1.RowCount - 1, gridView1.Columns[ 1 ], checkedCombo );

其中:gridView1 是我的 gridControl 的 MainView。

4

1 回答 1

1

您可以使用ColumnView.ShownEditor事件和ColumnView.FocusedRowHandleColumnView.FocusedColumnColumnView.ActiveEditor属性。
这是示例:

private void gridView1_ShownEditor(object sender, EventArgs e)
{
    if (gridView1.FocusedColumn.FieldName != "YourCheckedComboBoxColumn")
        return;

    var editor = (CheckedComboBoxEdit)gridView1.ActiveEditor;
    editor.Properties.Items.Clear();

    var value = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "YourEyeColumn").ToString();

    if (value == "Eye Color")
        editor.Properties.Items.AddRange(new CheckedListBoxItem[] { new CheckedListBoxItem("Green"), new CheckedListBoxItem("Blue"), new CheckedListBoxItem("Grey") });
    else if (value == "Eye Size")
        editor.Properties.Items.AddRange(new CheckedListBoxItem[] { new CheckedListBoxItem("Big"), new CheckedListBoxItem("Medium"), new CheckedListBoxItem("Small") });
}
于 2014-09-02T10:28:27.610 回答