private void AddSubstitutionCommandExecute([NotNull] object obj) { Assert.ArgumentNotNull(obj, "obj"); var substitutionToAdd = new SubstitutionViewModel(Groups, Groups.First(g => g.IsBuildIn), new Substitution()); var substitutionEditDialog = new SubstitutionEditDialog { DataContext = substitutionToAdd, Owner = (Window)obj }; substitutionEditDialog.Show(); substitutionEditDialog.Closed += (s, e) => { if (substitutionEditDialog.Save) { substitutionToAdd.SubstitutionGroup.AddSubstitution(substitutionToAdd); } }; }
private void EditSubstitutionCommandExecute([NotNull] object obj) { Assert.ArgumentNotNull(obj, "obj"); if (SelectedSubstitution == null) { return; } var originalSubstitution = SelectedSubstitution; var substitutionEditDialog = new SubstitutionEditDialog { DataContext = originalSubstitution.Clone(), Owner = (Window)obj }; substitutionEditDialog.Show(); substitutionEditDialog.Closed += (object sender, System.EventArgs e) => { if (!substitutionEditDialog.Save) { return; } var changedSubstitution = (SubstitutionViewModel)substitutionEditDialog.DataContext; if (originalSubstitution.SubstitutionGroup == changedSubstitution.SubstitutionGroup) { var originalIndex = originalSubstitution.SubstitutionGroup.Substitutions.IndexOf(originalSubstitution); originalSubstitution.SubstitutionGroup.InsertSubstitution(originalIndex, (SubstitutionViewModel)substitutionEditDialog.DataContext); } else { changedSubstitution.SubstitutionGroup.AddSubstitution(changedSubstitution); } originalSubstitution.SubstitutionGroup.RemoveSubstitution(originalSubstitution); SelectedSubstitution = (SubstitutionViewModel)substitutionEditDialog.DataContext; }; }