Jus*_*ury 6 c# data-binding bindinglist bindingsource winforms
当我尝试删除datagridview中的最后一项时,我收到以下消息.
DataBinding在列表中找不到适合所有绑定的行.
我的绑定设置如下.
ExtendedBindingList<MyClass> bl = new ExtendedBindingList<MyClass>(GetDataFromDB());
BindingSource bs = new BindingSource();
bs.DataSource = bl;
dgv.DataSource = bs;
Run Code Online (Sandbox Code Playgroud)
ExtendedBindingList只是简单的东西,我把它们放在一起实现排序和过滤以及一些基本的状态持久性.dgv是DataGridView.GetDataFromDB返回MyClass的List.
只有在我尝试使用以下方法从datagridview中删除最后一项时才会出现此问题:
bs.RemoveCurrent();
Run Code Online (Sandbox Code Playgroud)
其他所有时间都有效.我唯一提示解决方案是删除所有绑定并重新应用它们,但这似乎不是一个理想的解决方案.
编辑 只有在BindingList成功删除最后一个项目后才会抛出异常.它被外部代码抛出,所以我无法准确地告诉它究竟是什么抛出它.
所以,我在这里,请求一些帮助:).
提前谢谢,贾斯汀
以下是我从网格中删除选定行的方法:
private void btnDelete_Click(object sender, EventArgs e)
{
if (grid.CurrentRow == null) return;
var selectedItem = grid.CurrentRow.DataBoundItem as PartGroup;
if (selectedItem != null &&
UIHelper.ShowQuestion("Are you sure you want to delete selected row?") == System.Windows.Forms.DialogResult.Yes)
{
groups.Remove(selectedItem);
}
}Run Code Online (Sandbox Code Playgroud)
groups 是我的 BindingListEx(Of T)。
希望能帮助到你。