/// <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);
            }
        }