0

次のデータグリッドがあり、グリッドが読み取り専用に設定されているが条件の設定方法がわからない場合、cover = false の行を色付けしたいと思います。問題は、カバー = false の最初の条件にあるようです。この条件を削除したかのように、他の条件が機能しています

        <DataGrid ItemsSource="{Binding AvailableRows}" AlternatingRowBackground="Lavender" Grid.Row="1"
                  IsReadOnly="{Binding IsEditable, Converter={StaticResource InvertedBoolConverter}}" CanUserResizeColumns="True">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding TabName}" Header="Tab Name" CanUserSort="False" Width="1.5*">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="TextWrapping" Value="Wrap"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding GroupSummaryTabRowDescription.Description}" Header="Benefit" CanUserSort="False" Width="2*" IsReadOnly="True">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="TextWrapping" Value="Wrap"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridCheckBoxColumn Binding="{Binding Cover, Converter={StaticResource YNToBoolConverter}}" Header="Cover" CanUserSort="False" Width="1*"/>
                <DataGridTextColumn Binding="{Binding RuleDescription, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Header="Rule" CanUserSort="False" Width="3.5*">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="TextWrapping" Value="Wrap"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding AdditionalInfo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Header="Additional Info" CanUserSort="False" Width="4*">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="TextWrapping" Value="Wrap"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
            </DataGrid.Columns>
            <DataGrid.RowStyle>
                <Style TargetType="DataGridRow">
                    <Style.Triggers>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding Cover}" Value="False"/>
                                <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=IsReadOnly}"  Value="True"/>
                            </MultiDataTrigger.Conditions>
                            <Setter  Property="Foreground" Value="Red" />
                        </MultiDataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.RowStyle>
        </DataGrid>
4

1 に答える 1

2

上記で、Cover をチェック ボックス列にバインドするときに、コンバーターを使用することに気付きました

Converter={StaticResource YNToBoolConverter}}

Cover プロパティがブール値ではないことを示唆しています。条件バインディングで同じコンバーターを試しましたか?

于 2012-06-22T21:34:13.910 に答える