private void Dgv_Overview_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { CarboGroup carboGroup = (CarboGroup)dgv_Overview.SelectedItem; if (carboGroup != null) { TextBox t = e.EditingElement as TextBox; DataGridColumn dgc = e.Column; if (t != null) { //Corrections: if (dgc.Header.ToString() == "Correction") { string textExpression = t.Text; if (Utils.isValidExpression(textExpression) == true) { carboGroup.Correction = textExpression; CarboLifeProject.UpdateGroup(carboGroup); } } if (dgc.Header.ToString() == "Volume (m³)") { if (carboGroup.AllElements.Count > 0) { MessageBox.Show("Volume is based on Element Totals, Purge the elements before overriding the volume"); carboGroup.CalculateTotals(); btn_Calculate.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } } } } }
private void Dgv_Overview_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { if (dgv_Overview != null) { CarboGroup carboGroup = (CarboGroup)dgv_Overview.SelectedItem; if (carboGroup != null) { TextBox t = e.EditingElement as TextBox; DataGridColumn dgc = e.Column; if (t != null) { //Corrections: if (dgc.Header.ToString().StartsWith("Correction")) { string textExpression = t.Text; if (Utils.isValidExpression(textExpression) == true) { carboGroup.Correction = textExpression; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); } else { carboGroup.Correction = ""; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); } } if (dgc.Header.ToString().StartsWith("Volume")) { if (carboGroup.AllElements.Count > 0) { MessageBox.Show("The volume of this group is calculated using the element volumes extracted from the 3D model," + Environment.NewLine + " you need to purge the elements before overriding the volume"); carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); //System.Threading.Thread.Sleep(500); //Calculate(); } else { double volumeEdit = Utils.ConvertMeToDouble(t.Text); if (volumeEdit != 0) { carboGroup.Volume = volumeEdit; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); //carboGroup.CalculateTotals(); } } } //Waste //Corrections: if (dgc.Header.ToString().StartsWith("Waste")) { double wastevalue = Utils.ConvertMeToDouble(t.Text); if (wastevalue != 0) { carboGroup.Waste = wastevalue; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); //carboGroup.CalculateTotals(); } } //Additional: if (dgc.Header.ToString().StartsWith("Additional")) { double additional = Utils.ConvertMeToDouble(t.Text); if (additional != 0) { carboGroup.Additional = additional; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); //carboGroup.CalculateTotals(); } } //B4: if (dgc.Header.ToString().StartsWith("Group")) { double b4 = Utils.ConvertMeToDouble(t.Text); if (b4 != 0) { carboGroup.B4Factor = b4; carboGroup.CalculateTotals(); CarboLifeProject.UpdateGroup(carboGroup); //carboGroup.CalculateTotals(); } } //The below triggers an error when switching cells too fast, no idea why need to resolve. //dgv_Overview.ItemsSource = null; //dgv_Overview.ItemsSource = CarboLifeProject.getGroupList; //SortData(); } } } }