Подтвердить что ты не робот

Как скрыть кнопку, связанную с командой, которая не может выполнить?

Вместо отключения кнопки, которая происходит автоматически, я хотел бы скрыть (или, скорее, скрыть видимость) кнопку.

4b9b3361

Ответ 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>

Обратите внимание, что вы можете определить этот стиль в более высокой области и поделиться им - я просто поместил это правильно с помощью кнопки для более сжатого примера.

Ответ 2

То же поведение без стиля и триггера, если свойство Visibility еще не связано.

Command={Binding MyCommand}
Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BTVC}}"

Где BTVC - это BooleanToVisibilityConverter (это должно быть).