我想在WPF DataGrid中禁用DataRow选择。
首先,我尝试了IsHitTestVisible
属性,它禁用了整行。如果我想放置HyperLink
,它将被禁用。
我试图通过覆盖DataGridRow
ControlTemplate
来摆脱它:
(整个模板代码很大,但我只列出了重要的部分)
<VisualState x:Name="Normal_Selected">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlMediumColor}" />
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlDarkColor}" />
</ColorAnimationUsingKeyFrames>
<!--<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0" Value="Black" />
</ColorAnimationUsingKeyFrames>-->
</Storyboard>
</VisualState>
实际上,在DataGrid中选择一行将更改Forground
的颜色。我已经尝试过Triggers
,但无法正常工作。在上面的代码中,我试图保持前台Black
的位置,但它会引发运行时错误。
如何禁用DataGrid中的行选择?