c# - A ResetBindings on a BindingSource of a Grid also resets ComboBox -


I have a datagrid view with the binding source of the products. This product has an anonymity.

Most text fields (to edit the product) below the datagrid view. I have a method refreshing product that does the reset binding to refresh the datagrid view. Also there is a combo box (cboProducer)

If I go to _orderBs.ResetBindings (false) it will reset my cboProducer outside the DataGridView, too. Can you please help me avoid this?

Here some code has been followed; It may be better to understand that. Select Public Partial Classes User Editor {Private AutoComplete Column _product Cleansing; Private product_productll; Private order BL _ order BL; Private Sort Binding List & lt; ProductBE & gt; _listProducts; Private productbyelected product; Private order BE _Dr; Binding resource_db = new binding resource (); Public Selection Products () {Initialization (); If (_productBL == faucet) _productBL = new ProductBL (); If (_orderBL == zero) _orderBL = new order BL (); If (_productCollection == faucet) _productCollection = new autocomplete compilation (); If (_order == faucet) _order = new order BE (); If (_listProducts == zero) {_listProducts = _order.ProductList; _drb.datasource = _order; GrdOrder.DataSource = _orderBs; GrdOrder.DataMember = "Product List"; }} Private Zero cmdGetProduct_Click (Object Sender, EventArgs e) {ProductBE Product = _productBL.Load (txtProductNumber.Text); _listProducts.Add (product); _orderBs.ResetBindings (wrong); } Private Zero grdOrder_SelectionChanged (Object Sender, EventArgs E) {if (grdOrder.SelectedRows.Count> 0) {_selectedProduct = (ProductBE) ((DataGridView) (Sender)). CurrentRow.DataBoundItem; If (_selectedProduct! = Null) {txtArticleNumber.Text = SelectedProduct.Article; TxtPrice.Text = Selected product. value. Toaster ("c"); TxtProducerNew.Text = _selectedProduct.ProducerText; CboProducer.DataSource = Enum.GetValues ​​(typed (creator)); CboProducer.SelectedItem = _selectedProduct.Producer; }}} Private Zero txtProducerNew_Lave (Object Sender, EventArgs E) {string property = CommonMethods.GetPropertyName ((=) = New ProductBE (.) Manufacturer Text); RefreshProduct ((Textboxbase) Sender). Text, property); } Private zero refresh product (object value, string property) {if (chosen product! = Null) {double valued double; If (Double Tripers (value to string), value value is OFD double)) {value = valueOfDouble; } Type Type = Selected Products GetType (); Property information info = type.GetProperty (property); If (info.PropertyType.BaseType == typeof (Enum)) {value = Enum.Parse (info.PropertyType, value.ToString ()); } Try {Change} ChangeType (value, info.PropertyType, New Culture Info ("de-DE")); Info.SetValue (_selectedProduct, value, zero); } Hold (exception before) {new incorrect format exception ("\" "+ value.ToString (+ +" \ "is not a valid value.", Prior); } Var produktFromList = _listProducts.Single (p = & gt; p.Position == _selectedProduct.Position); Info.SetValue (produktFromList, value, blank); _orderBs.ResetBindings (wrong); }} Private Zero cboProducer_SelectedIndexChanged (Object Sender, EventArgsE) {var selectedIndex = (ComboBox) (Sender)). SelectedIndex; Switch (manufacturer selected index) {case manufacturer. ABC: txtProducerNew.Text = Constants.ABC; break; Case maker. DEF: txtProducerNew.Text = Constants.DEF; break; Case maker GGi: txtProducerNew.Text = Fixed. GAI; break; Case maker Second: txtProducerNew.Text = string Empty; break; Default: Break; } String property = Common Mathew. Getpropertinum (() => New Productby (.) Manufacturer); RefreshProducts (selected index, property); }}

I got it! GradOrder_SelectionChanged- ResetBindings After the event was raised. And after the chosen product, zero (I do not know why so far ...) the COBprodler datasource was reset again.

Then the solution is to set cosportor's datasource in the constructor.

Thanks for reading.

Comments