public StringOfVarParamsPlngrVM(StringOfVarParametersPlunger model) => Model = model;
private void btnTable_Click(object sender, RoutedEventArgs e) { StringOfVarParametersPlunger stringOfVar = null; StringOfVarParamsPlngrVM varParamsVM = null; StringOfVarParamsPlngrView view = null; switch (((Button)sender).Name) { case "btnAdd": int maxid = 0; if (((PremagPlungerVM)DataContext).VariationData.Count != 0) { maxid = ((PremagPlungerVM)DataContext).VariationData.Select(i => i.ID_culc).Max(); StringOfVarParametersPlunger varParametersMaxid = ((PremagPlungerVM)DataContext).VariationData.FirstOrDefault(i => i.ID_culc == maxid); stringOfVar = (StringOfVarParametersPlunger)varParametersMaxid.Clone(); stringOfVar.ID_culc = ++maxid; } else { stringOfVar = new StringOfVarParametersPlunger { ID_culc = ++maxid } }; //new item //for validation stringOfVar.SetParametersForModelValidation(StringToDouble(((PremagPlungerVM)DataContext).R0), StringToDouble(((PremagPlungerVM)DataContext).R10), StringToDouble(((PremagPlungerVM)DataContext).R110), StringToDouble(((PremagPlungerVM)DataContext).R1110), StringToDouble(((PremagPlungerVM)DataContext).hфл), StringToDouble(((PremagPlungerVM)DataContext).l1), StringToDouble(((PremagPlungerVM)DataContext).l2)); varParamsVM = new StringOfVarParamsPlngrVM(stringOfVar); view = new StringOfVarParamsPlngrView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } ((PremagPlungerVM)DataContext).VariationData.Add(varParamsVM.Model); //add to db btnEdit.Visibility = Visibility.Visible; break; case "btnEdit": if (dtgrdVarParams.SelectedItem != null) { StringOfVarParametersPlunger selectedStringOfVar = ((PremagPlungerVM)DataContext).VariationData.Where( i => i.ID_culc == ((StringOfVarParametersPlunger)dtgrdVarParams.SelectedItem).ID_culc).FirstOrDefault(); stringOfVar = (StringOfVarParametersPlunger)selectedStringOfVar.Clone(); //for validation stringOfVar.SetParametersForModelValidation(StringToDouble(((PremagPlungerVM)DataContext).R0), StringToDouble(((PremagPlungerVM)DataContext).R10), StringToDouble(((PremagPlungerVM)DataContext).R110), StringToDouble(((PremagPlungerVM)DataContext).R1110), StringToDouble(((PremagPlungerVM)DataContext).hфл), StringToDouble(((PremagPlungerVM)DataContext).l1), StringToDouble(((PremagPlungerVM)DataContext).l2)); varParamsVM = new StringOfVarParamsPlngrVM(stringOfVar); view = new StringOfVarParamsPlngrView { DataContext = varParamsVM, Owner = this }; view.ShowDialog(); if (!varParamsVM.IsOK) { return; } //modify the db StringOfVarParametersPlunger removeItem = ((PremagPlungerVM)DataContext).VariationData.Where(i => i.ID_culc == varParamsVM.Model.ID_culc).FirstOrDefault(); ((PremagPlungerVM)DataContext).VariationData.Remove(removeItem); ((PremagPlungerVM)DataContext).VariationData.Add(varParamsVM.Model); #region sorting var sortshot = ((PremagPlungerVM)DataContext).VariationData.OrderBy(i => i.ID_culc); ObservableCollection <StringOfVarParametersPlunger> snapshot = new ObservableCollection <StringOfVarParametersPlunger>(); foreach (StringOfVarParametersPlunger item in sortshot) { snapshot.Add(item); } ((PremagPlungerVM)DataContext).VariationData.Clear(); foreach (StringOfVarParametersPlunger item in snapshot) { ((PremagPlungerVM)DataContext).VariationData.Add(item); } #endregion } break; case "btnDel": if (dtgrdVarParams.SelectedItem != null) { ((PremagPlungerVM)DataContext).VariationData.Remove((StringOfVarParametersPlunger)dtgrdVarParams.SelectedItem); } if (((PremagPlungerVM)DataContext).VariationData.Count == 0) { btnEdit.Visibility = Visibility.Hidden; } break; } }