WPF смена кнопок

299
09 декабря 2016, 08:47

Задача:

Требуется по нажатию одной кнопки заменить её на другую и наоборот.

Написал такие стили для двух кнопок:

<Style x:Key="FindAppButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="IsEnabled" Value="True"/>
        <Setter Property="Visibility" Value="Visible"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=StopSearch, Path=Visibility}" Value="Hidden">
                <Setter Property="Visibility" Value="Visible"/>
                <Setter Property="IsEnabled" Value="True"/>
            </DataTrigger>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Visibility" Value="Hidden"/>
                <Setter Property="IsEnabled" Value="False"/>
            </Trigger>
        </Style.Triggers>
    </Style>

 <Style x:Key="StopSearchButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="Visibility" Value="Hidden"/>
        <Setter Property="IsEnabled" Value="False"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=FindApp, Path=Visibility}" Value="Hidden">
                <Setter Property="Visibility" Value="Visible"/>
                <Setter Property="IsEnabled" Value="True"/>
            </DataTrigger>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Visibility" Value="Hidden"/>
                <Setter Property="IsEnabled" Value="False"/>
            </Trigger>
        </Style.Triggers>
    </Style>

По нажатию кнопки поиска, мельком видно, как она скрывается и появляется кнопка остановки, а потом обратно становится видимой. А события нажатия для этих кнопок вообще не срабатывают.

В чём дело?

Answer 1

Ваша ошибка в том, вы в разметке пытаетесь решить вопрос, который, по хорошему, надо решать в ViewModel. Сделайте в вашей VM два свойства StopSearchVisibility и FindAppVisibility типа bool и к ним уже привяжите ваши кнопки.

READ ALSO
Парсинг динамического json на C#

Парсинг динамического json на C#

Здравствуйте, есть json объект типа:

304
Наследование в EntityFramework

Наследование в EntityFramework

Допустим, были сгенерированы Классы-сущности и мне захотелось расширить какую-то сущность дополнительными полями(Например, вспомогательными...

265
Не работает скролл в ListView

Не работает скролл в ListView

В моем ListView с кнопками по непонятной мне причине, не хочет работать скролл Вот Listview

276
Как правильно представить if-else- блок в Unit Test?

Как правильно представить if-else- блок в Unit Test?

ЗдравствуйтеЯ хочу с помощью Unit Test проверить, или моя функция правильно работает и не знаю как заменить блок if-else?

241