Конвертер WPF с триггерами

у меня есть этот XAML, который смотрит, может ли строка быть включена или нет внутри DataGrid

        <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding State, Converter={StaticResource converter}}" Value="true">
                        <Setter Property="IsEnabled" Value="true"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.RowStyle>

Преобразователь работает и возвращает false или true, однако, когда он отправляет обратно false, строка все еще активна, я сделал что-то не так?


person user3533398    schedule 16.04.2014    source источник


Ответы (1)


Значение по умолчанию для IsEnabled равно true. Таким образом, это всегда будет истинным, если вы не укажете в триггере, что это будет false. Вы должны сделать следующее:

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding State, Converter={StaticResource converter}}" Value="False">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>

Поэтому по умолчанию он останется истинным и переключится на ложный только при активации этого триггера.

person Damascus    schedule 16.04.2014
comment
Да, я увидел эту ошибку только тогда, когда разместил ее здесь... Прошу прощения. Я отмечу ваш ответ как правильный, но его стоит удалить. Я не знаю. Ура (отметит в 10) - person user3533398; 16.04.2014