【发布时间】:2010-11-12 23:10:29
【问题描述】:
我正在尝试让我的 datagridview 控件在数据刷新后记住选定的行。
DGV 数据绑定到业务对象列表:
Dim FXs As SortableBindingList(Of FX) = FX.LoadAllForBinding(FXStatus)
Dim bs As New BindingSource
bs.DataSource = FXs
整体顺序是这样的:
- 用户点击一行
- 行索引保存在变量中
- 用户在弹出表单中编辑数据并在完成后关闭
- Datagridview 已刷新(从头开始重新绑定)
-
选择的行设置为之前保存的索引(在 DGV 的 DataBindingComplete 事件中)
Me.dgvMain.Rows(_CurrentSelectedRowNo).Selected = True
这似乎工作正常,所选行设置正确(至少计数从 0 变为 1)。然而接下来发生的是调试器跳转到绑定业务对象的属性中(可能是读取它们进行绑定),因此 DataBindingComplete 事件似乎在 DataBinding 完成之前触发。
DGV 最多可以有大约 300 行,因此每次编辑行时它都会跳回零行,这对用户来说非常烦人!
我在这里做明显错误的事情吗?我应该为此使用不同的事件吗?
【问题讨论】:
-
您是否有理由不能只编辑数据网格视图中的值?在弹出式表单中编辑数据有什么好处?
-
基础设计,DGV 只显示部分字段。
标签: .net vb.net data-binding datagridview