public void AddBlock(BlockType blockType)
        {
            BlockBuilderViewModel blockBuilder = blockBuilderViewModelFactory.CreateBlockBuilderViewModel(blockType);

            blockBuilder.BlockBuilt += (sender, e) => {
                AddBlock(e);
                BlockBuilderRemoved?.Invoke(this, blockBuilder);
            };
            blockBuilder.BlockDeleted += (sender, e) => {
                BlockBuilderRemoved?.Invoke(this, blockBuilder);
            };

            BlockBuilderAdded?.Invoke(this, blockBuilder);
        }
        public void EditBlock(BlockViewModel blockViewModel)
        {
            BlockBuilderViewModel blockBuilder = blockBuilderViewModelFactory.CreateBlockBuilderViewModel(blockViewModel.Block);

            blockBuilder.BlockBuilt += (sender, e) => {
                ReplaceBlock(blockViewModel.Block, e);
                BlockBuilderRemoved?.Invoke(this, blockBuilder);
            };
            blockBuilder.BlockDeleted += (sender, e) => {
                RemoveBlock(e);
                BlockBuilderRemoved?.Invoke(this, blockBuilder);
            };

            BlockBuilderAdded?.Invoke(this, blockBuilder);
        }