首页 文章

给定实体更改选定的DataGridView行

提问于
浏览
0

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

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

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

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

2 回答

  • 1

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

  • 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;
            }
        }
    }
    

相关问题