我有一个DataGridView,DataSource设置为BindingSource控件,绑定到实体的ObservableList。
我将此网格用作只读网格,用于搜索目的。 选择项目后,将使用当前所选项目更新另一个BindingSource。 直到这里才会有问题。
问题是在创建新项目时我想在DataGrid中选择新项目,因为在保存用户之后应该能够编辑刚刚创建的记录的一些数据。
我该怎么做? 我只能提供实体本身或ID,但我无法弄清楚如何做到这一点。 我并不习惯使用Windows Forms,所以我确信我错过了一些简单的解决方案。
答案 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;
}
}
}