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 е вярно. Така че винаги ще бъде вярно, освен ако не посочите в тригер да бъде 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>

Следователно той ще остане верен по подразбиране и ще превключи на false само когато този тригер е активиран.

person Damascus    schedule 16.04.2014
comment
Да, видях тази грешка едва когато я публикувах тук... Извинявам се. Ще маркирам отговора ви като правилен, но си струва да го изтрия. Не знам. Наздраве (Ще отбележа след 10) - person user3533398; 16.04.2014