如何在 RepositoryLookupEdit_ValueChanged 事件中获取行 ID

How to get Row Id in RepositoryLookupEdit_ValueChanged event

我的网格控件在其中一列中有 RepositoryLookupEdit。我可以在更改后获取 RepositoryLookupEdit 的值,但我不知道如何获取更改的那一行的 RepositoryLookupEdit 值。如何获取行 ID?

使用下面的代码,我可以获得 RepositoryLookupEdit 值。

private void repositoryItemLookUpEdit1_EditValueChanged(object sender, EventArgs e)
{
    LookUpEdit edit = sender as LookUpEdit;
    var row = edit.Properties.GetDataSourceRowByKeyValue(edit.EditValue);
}

由于 repositoryItemLookUpEdit 不限于 GridControls,因此您无法从该事件中获取行句柄。然而你还有其他的可能性。

首先,如果是用户编辑,可以使用ColumnView.GetFocusedRow()方法获取当前网格行

但是,如果通过代码更改编辑值,它也会在网格中更改,因此您现在可以使用 ColumnView.CellValueChanged 事件。

private void repositoryItemLookUpEdit1_EditValueChanged(object sender, EventArgs e)
{
    LookUpEdit edit = sender as LookUpEdit;
    var row = edit.Properties.GetDataSourceRowByKeyValue(edit.EditValue);
    gridRow = gridView.GetFocusedRow() as MyDataRow
}