private void UndoRedo(System.Windows.Controls.ListBox listBox, bool isUndo)
        {
            if (listBox == null)
            {
                return;
            }

            if (!this.isRecursion)
            {
                var parentButton = listBox.ParentOfType <RadRibbonSplitButton>();
                if (parentButton != null && parentButton.IsOpen)
                {
                    this.isRecursion = true;
                    var startIndex = listBox.SelectedIndex;
                    for (var i = 0; i <= startIndex; i++)
                    {
                        if (isUndo)
                        {
                            this.diagram.UndoRedoService.Undo();
                        }
                        else
                        {
                            this.diagram.UndoRedoService.Redo();
                        }
                    }
                    this.isRecursion    = false;
                    parentButton.IsOpen = false;
                }
            }
            listBox.SelectedItem = null;
        }