5

DataGrid で非常に奇妙な動作に遭遇しました。DataGridRow に次のトリガーがあります

<Style TargetType="{x:Type DataGridRow}">
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="{StaticResource SelectionBackgroundBrush}"/>
            <Setter Property="Foreground" Value="White"/>
        </Trigger>
    </Style.Triggers>
</Style>

最初に行が選択されると、上記のトリガーから動作が得られます。ただし、選択後、DataGrid がフォーカスを失った場合 (たとえば、ウィンドウの他のボタンをクリックした場合)、Foreground プロパティの値は失われますが、背景はトリガーで指定されたままになります。誰かがこの動作に遭遇したことがありますか、または上記のコードに問題がありますか (またはその点で私のアプリケーションの他の場所)。上記の問題の回避策はありますか?

4

1 に答える 1

0

DataGridRow の代わりに DataGridCell を使用しましたが、うまくいきます

    <Style TargetType="{x:Type DataGridCell}">
        <Style.Triggers>
            <Trigger Property="DataGridCell.IsSelected" Value="True">
                <Setter Property="BorderBrush" Value="#CCDAFF" />
                <Setter Property="Background" Value="#3399ff"/>
                <Setter Property="Foreground" Value="White"/>
            </Trigger>
        </Style.Triggers>
    </Style>

それが誰かを助けることを願っています!

于 2014-09-25T21:36:45.130 に答える