我正在使用 MVVM 并有一个带有可编辑列的数据网格,我正在对它进行验证:
<DataGridTemplateColumn Header="Key" Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<vw:NumericTextBox Text="{Binding Key, Mode=TwoWay,ValidatesOnDataErrors=True,UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
我添加了一种样式以将错误显示为工具提示:
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self},Path=(Validation.Errors).CurrentItem.ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
因此,验证被触发,单元格以红色勾勒,并显示错误消息工具提示。
我有 2 个问题,首先,当用户单击单元格外时,单元格仍以红色勾勒,但悬停时不显示工具提示。我怎样才能让它工作?第二个问题是我不想要的行旁边有一个橙色感叹号。我认为这是因为网格或行上有一些默认样式。我该如何摆脱它(红色轮廓很好)?