c# - Delete list item with BindingNavigator, not correct item -
i use bindingnavigator delete items products list, via datagridview. (the methodcall main.deleteproduct() calls repository delete database).
i need improve code of ..deleteitem_click event. when click on cell/or row, , delete button (bindingnavigator), never deletes row. deletes row below, or if it's last row, row above, , if 1 row, null cast. shouldn't bindingsource.current same item currentrow of datagridview?
also, way i'm casting current item using bindingsource way? appretiate better code suggestion if have.
cheers!
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 breakpoint here, shows identity property not same // row selected in datagridview. main.deleteproduct(product); }
a better solution intercept/remove binding navigator's delete event, , handle deletion manually.
go binding navigator; bring properties in properties window. find deleteitem property (under "items" category), , set "(none)".
now can code deletion functionality in click event of delete button in associated toolbar. code in previous answer work - can correct "current" item. can add confirmation check ("are sure?") here if required.
of course, not forget remove item collection bindingsource bound (or refresh data).
Comments
Post a Comment