private void AddHighlightCommandExecute([NotNull] object obj) { Assert.ArgumentNotNull(obj, "obj"); var highlightToAdd = new HighlightViewModel(Groups, Groups.First(g => g.IsBuildIn), new Highlight()); var highlightEditDialog = new HighlightEditDialog { DataContext = highlightToAdd, Owner = (Window)obj }; highlightEditDialog.Show(); highlightEditDialog.Closed += (s, e) => { if (highlightEditDialog.Save) { highlightToAdd.HighlightGroup.AddHighlight(highlightToAdd); } }; }
private void EditHighlightCommandExecute([NotNull] object obj) { Assert.ArgumentNotNull(obj, "obj"); if (SelectedHighlight == null) { return; } var originalHighlight = SelectedHighlight; var highlightEditDialog = new HighlightEditDialog { DataContext = originalHighlight.Clone(), Owner = (Window)obj }; highlightEditDialog.Show(); highlightEditDialog.Closed += (s, e) => { if (!highlightEditDialog.Save) { return; } var changedHighlight = (HighlightViewModel)highlightEditDialog.DataContext; if (originalHighlight.HighlightGroup == changedHighlight.HighlightGroup) { var originalIndex = originalHighlight.HighlightGroup.Highlights.IndexOf(originalHighlight); originalHighlight.HighlightGroup.InsertHighlight(originalIndex, changedHighlight); } else { changedHighlight.HighlightGroup.AddHighlight(changedHighlight); } originalHighlight.HighlightGroup.RemoveHighlight(originalHighlight); SelectedHighlight = (HighlightViewModel)highlightEditDialog.DataContext; }; }