【发布时间】:2011-01-25 16:06:00
【问题描述】:
我使用 BindingNavigator 通过 datagridview 从产品列表中删除项目。 (方法调用 main.DeleteProduct() 调用存储库从数据库中删除)。
我需要一些帮助来改进 ..DeleteItem_Click 事件的代码。当我单击单元格/或行,然后删除按钮(BindingNavigator)时,它永远不会删除该行。它删除下面的行,或者如果它是最后一行,则删除上面的行,如果只有一行,则强制转换为 null。 bindingSource.Current 不应该与 datagridview 的当前行相同吗?
另外,我使用 bindingsource 投射当前项目的方式是一种好方法吗?如果有的话,会欣赏更好的代码建议。
干杯!
public partial class Form1 : Form
{
private MainBL main = new MainBL();
private List<Product> products = new List<Product>
private void Form1_Load(object sender, EventArgs e)
{
bsProducts.DataSource = products; // BindingSource
bnProducts.BindingSource = bsProducts; // BindingNavigator
dataGridView1.DataSource = bsProducts; //
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
Product product = (Product)bsProducts.Current;
// Putting a breakpoint here, shows the identity property is not the same
// as row selected in datagridview.
main.DeleteProduct(product);
}
【问题讨论】:
标签: c# .net binding bindingsource