/// <summary> /// Execute the command. /// </summary> /// <param name="parameter">Command parameter.</param> public override void Execute(object parameter) { _workspace = _documentManager.CurrentDocument.Workspace; var visualizerExpressionItems = CreateVisualizerCollectionFrom(_workspace.Bindings); var solutionEditorViewModel = new SolutionEditorViewModel(visualizerExpressionItems, _windowManager); var showDialogResult = _windowManager.ShowDialog(solutionEditorViewModel); if (!showDialogResult.GetValueOrDefault()) { return; } UpdateBindingsFrom(solutionEditorViewModel); }
/// <summary> /// Update visualizer bindings from the visualizer expression editor view models. /// </summary> /// <param name="solutionEditor">Binding expression editors.</param> private void UpdateBindingsFrom(SolutionEditorViewModel solutionEditor) { foreach (var visualizerEditorId in solutionEditor.Deleted) { var anUpdatedVisualizerBinding = _workspace.GetBindingExpressionById(visualizerEditorId); _workspace.DeleteBindingExpression(anUpdatedVisualizerBinding); } foreach (var updatedExpressionEditor in solutionEditor.Updated) { // Update existing expression var anUpdatedVisualizerBinding = _workspace.GetBindingExpressionById(updatedExpressionEditor.Id); anUpdatedVisualizerBinding.Text = updatedExpressionEditor.Text; } foreach (var newExpressionEditor in solutionEditor.Added) { // Add new expression var aNewExpression = new VisualizerBindingExpressionModel(newExpressionEditor.Text); _workspace.AddBindingExpression(aNewExpression); } }