给定实体更改选定的DataGridView行

时间:2013-02-27 11:48:10

标签: c# winforms entity-framework datagridview

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

我将此网格用作只读网格,用于搜索目的。 选择项目后,将使用当前所选项目更新另一个BindingSource。 直到这里才会有问题。

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

我该怎么做? 我只能提供实体本身或ID,但我无法弄清楚如何做到这一点。 我并不习惯使用Windows Forms,所以我确信我错过了一些简单的解决方案。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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;
        }
    }
}