private void EditHandler(object parameter) { if (SelectedSystemReference != null) { SystemReference clone = new SystemReference { //in case user cancels out... FundingType = SelectedSystemReference.FundingType, SystemReferenceType = SelectedSystemReference.SystemReferenceType, Number = SelectedSystemReference.Number, Description = SelectedSystemReference.Description, EstValue = SelectedSystemReference.EstValue }; List<LightSystemReference> systemReferences = (from x in SystemReferences where x.Id == 0 select new LightSystemReference { Id = 0, Number = x.Number, SystemReferenceTypeId = x.SystemReferenceTypeId }).ToList(); AddEditSystemReferenceDialog dialog = new AddEditSystemReferenceDialog(SelectedSystemReference, systemReferences); dialog.Show(); dialog.Closed += (e, s) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { Utils.OnCollectionChanged(EventAggregator, mIssue, PROPERTYNAME, true); } else { //reverse out changes SelectedSystemReference.SystemReferenceType = clone.SystemReferenceType; SelectedSystemReference.FundingType = clone.FundingType; SelectedSystemReference.Number = clone.Number; SelectedSystemReference.Description = clone.Description; SelectedSystemReference.EstValue = clone.EstValue; } RaisePropertyChanged("SystemReferences"); }; } }
private void AddHandler(object parameter) { List<LightSystemReference> inMemorySystemRefs = (from x in SystemReferences where x.Id == 0 select new LightSystemReference { Id = 0, Number = x.Number, SystemReferenceTypeId = x.SystemReferenceTypeId } ).ToList(); AddEditSystemReferenceDialog dialog = new AddEditSystemReferenceDialog(mIssue.Id, inMemorySystemRefs); dialog.Show(); dialog.Closed += (e, s) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { mIssue.SystemReferences.Add(dialog.SystemReference); RaisePropertyChanged("SystemReferences"); RaiseChangeEvent(); } else if (dialog.DialogResult.HasValue && !dialog.DialogResult.Value) { } }; }