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