Ответ 1
Вы можете использовать стиль и триггеры, считая, что команда отвечает за настройку кнопки enabled/disabled:
<Button x:Name="btnMoveUp"
Command="{x:Static local:Window1.MoveItemUp}">
<Button.Style>
<Style TargetType="{x:Type Button}" >
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Обратите внимание, что вы можете определить этот стиль в более высокой области и поделиться им - я просто поместил это правильно с помощью кнопки для более сжатого примера.