private void btnAdd_Click(object sender, RoutedEventArgs e) { WindowNewPayment wnEmployee = new WindowNewPayment { Title = "Новая покупка", Owner = this }; // формирование кода нового собрудника int maxIdPerson = vmPayment.MaxId() + 1; PaymentDOP per = new PaymentDOP { Id = maxIdPerson, Date = DateTime.Now }; wnEmployee.DataContext = per; wnEmployee.CbSer.ItemsSource = services; wnEmployee.CbCl.ItemsSource = clients; if (wnEmployee.ShowDialog() == true) { Service r = (Service)wnEmployee.CbSer.SelectedValue; Client c = (Client)wnEmployee.CbCl.SelectedValue; per.Service = r.Name; per.Client = c.FirstName + " " + c.LastName; persons.Add(per); Payment p = new Payment(); p = p.CopyFromPaymentDPO(per); vmPayment.PaymentPerson.Add(p); } }
private void btnEdit_Click(object sender, RoutedEventArgs e) { WindowNewPayment wnEmployee = new WindowNewPayment { Title = "Редактирование данных", Owner = this }; PaymentDOP perDPO = (PaymentDOP)Payment.SelectedValue; PaymentDOP tempPerDPO; // временный класс для редактирования if (perDPO != null) { tempPerDPO = perDPO.ShallowCopy(); wnEmployee.DataContext = tempPerDPO; wnEmployee.CbSer.ItemsSource = services; wnEmployee.CbCl.ItemsSource = clients; wnEmployee.CbCl.Text = tempPerDPO.Client.Split(new char[] { ' ' })[0]; wnEmployee.CbSer.Text = tempPerDPO.Service; if (wnEmployee.ShowDialog() == true) { // перенос данных из временного класса в класс отображения данных Service r = (Service)wnEmployee.CbSer.SelectedValue; Client p = (Client)wnEmployee.CbCl.SelectedValue; perDPO.Client = p.FirstName + " " + p.LastName; perDPO.Service = r.Name; perDPO.Quantity = tempPerDPO.Quantity; perDPO.Date = tempPerDPO.Date; perDPO.Amount = tempPerDPO.Amount; Payment.ItemsSource = null; Payment.ItemsSource = persons; // перенос данных из класса отображения данных в класс Person FindPayment finder = new FindPayment(perDPO.Id); List <Payment> listPerson = vmPayment.PaymentPerson.ToList(); Payment z = listPerson.Find(new Predicate <Payment>(finder.PaymentPredicate)); z = z.CopyFromPaymentDPO(perDPO); } } else { MessageBox.Show("Необходимо выбрать покупку для редактированния", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning); } }