0

我有一个 DataGridView,其 DataSource 设置为一个 BindingSource 控件,该控件绑定到一个 ObservableList 实体。

我将此网格用作只读网格,用于搜索目的。当一个项目被选中时,另一个 BindingSource 将更新为当前选定的项目。直到这里没有问题。

问题是在创建新项目时,我想在 DataGrid 中选择新项目,因为在保存用户之后应该能够编辑刚刚创建的记录的一些数据。

我怎样才能做到这一点?我只能提供实体本身或 ID,但我不知道该怎么做。我不太习惯使用 Windows 窗体,所以我确定我错过了一些微不足道的解决方案。

4

2 回答 2

1

您应该将SelectedItem网格的属性绑定到一个属性,您可以在其中设置您希望选择的实体。不确定,但您可能需要在网格上触发刷新,因为它可能不会自动刷新它的视图。

于 2013-02-27T11:50:19.010 回答
0

好的,经过一些研究和检查“行”对象,我发现这个解决方案完全符合我的需求。

如果有人发现这种方法有任何缺陷,请告诉我。

保存新项目后,我会使用新的主键更新实体,然后调用以下函数:

private void SelectDataGridItem(Model.MyEntityType selectedItem)
{
    foreach (DataGridViewRow row in MyDataGrid.Rows)
    {
        var boundItem = (Model.MyEntityType) row.DataBoundItem;
        if (boundItem.Id == selectedItem.Id)
        {
            row.Selected = true;
            break;
        }
    }
}
于 2013-02-27T12:53:32.083 回答