wpf DataGrid在焦点丢失时丢失其行选择

时间:2012-11-17 08:17:06

标签: wpf

我遇到了一个与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属性将丢失其值,但背景将保持在触发器中指定的值。有没有人遇到这种行为,或者上面的代码(或者我申请中的其他地方)存在一些问题。上述问题的解决方法是什么?

1 个答案:

答案 0 :(得分:0)

我使用的是DataGridCell而不是DataGridRow,它适用于我

    <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>

希望它有所帮助!