我在Devexpress GridView上有一个RepositoryItemComboBox控件和4行。RepositoryItemComboBox.Items.添加对所有行的影响。在CustomRowCellEdit和CustomRowCellEditForEditing事件中,我使用RepositoryItemComboBox.Items.Clear((和RepositoryItemComboBox.Items.Add,但它再次影响所有行。我需要修改特定的RepositoryItemComboBox。例如,在RepositoryItemComboBox的第一行中应该包含"Michael,John",在RepositoryItemsComboBox中的第二行应该包含"Sarah,Jake"。
您可以创建一个存储库,并通过处理CustomRowCellEdit事件根据您的条件进行分配。
private RepositoryItemComboBox myRepository(string[] myNames)
{
RepositoryItemComboBox repositoryItemCombo = new RepositoryItemComboBox();
repositoryItemCombo.Items.AddRange(myNames);
return repositoryItemCombo;
}
然后
private void GridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
if (e.Column.FieldName != "YourFieldName")
return;
if (e.RowHandle == 1) // Your condition
{
e.RepositoryItem = myRepository(new string[] { "Michael", "John" });
}
else
{
e.RepositoryItem = myRepository(new string[] { "Sarah", "Jake" });
}
}