Как скрыть кнопку, связанную с командой, которая не может быть выполнена? - PullRequest
26 голосов
/ 15 октября 2010

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

Ответы [ 3 ]

34 голосов
/ 15 октября 2010

Вы можете использовать стиль и триггеры, предполагая, что команда отвечает за установку кнопки «Включено / отключено»:

        <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>

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

18 голосов
/ 30 июля 2014

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

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

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

1 голос
/ 15 октября 2010

Используйте BooleanToVisibilityConverter и привязывайте к bool как , описанное здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...