private void Add_Executed(object sender, ExecutedRoutedEventArgs e) { SmpUcFormState.CurrentState = FormCurrentState.AddMaster; if (!(DataGridEmployees.SelectedItem is Employee selectedEmployee)) { return; } var newItem = new ContractMaster { Employee = selectedEmployee, ContractNo = "0", ContractDetails = new List <ContractDetail>(), DateEmployment = selectedEmployee.ContractMasters.FirstOrDefault(c => c.IsCurrent)?.DateEmployment ?? DateTime.Now, DateExecution = DateTime.Now, DateExport = DateTime.Now }; selectedEmployee.ContractMasters.Add(newItem); CollectionViewSource.GetDefaultView(DataGridEmployeeContracts.ItemsSource)?.Refresh(); DataGridEmployeeContracts.SelectedItem = newItem; DataGridEmployeeContracts.ScrollIntoView(newItem); SmpUcContractMasterEdit.SelectFirstItem(); // SmpUcContractDetailsEdit.DataContext = null; // SmpUcContractMasterEdit.CurrentContractMaster = newItem; }
private void SaveContractMasterAndContinue() { SmpUcContractMasterEdit.CommitContext(); if (!(SmpUcContractMasterEdit.DataContext is ContractMaster newItem)) { return; } var contractFields = newItem.MainGroup.CurrentContractFields.ToList(); contractFields.ForEach(gft => newItem.ContractDetails.Add(new ContractDetail { ContractField = gft })); Context.ContractMasters.Add(newItem); Context.SaveChanges(); SmpUcFormState.CurrentState = FormCurrentState.AddDetails; DataGridEmployeeContracts.SelectedItem = newItem; SmpUcContractDetailsEdit.Refresh(); SmpUcContractDetailsEdit.Select(); }
private void Save_Executed(object sender, ExecutedRoutedEventArgs e) { switch (SmpUcFormState.CurrentState) { case FormCurrentState.AddMaster: SaveContractMasterAndContinue(); SmpUcFormState.CurrentState = FormCurrentState.Edit; break; case FormCurrentState.Edit: SmpUcContractDetailsEdit.CommitContext(); SmpUcContractMasterEdit.CommitContext(); SmpUcContractDetailsEdit.Refresh(); SmpUcContractDetailsEdit.GetBindingExpression(DataContextProperty)?.UpdateSource(); SmpUcFormState.CurrentState = FormCurrentState.Select; break; } Context.SaveChanges(); }