私は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 つの問題があります。まず、ユーザーがセルの外をクリックすると、セルの輪郭が赤く表示されたままになりますが、ホバーしてもツールチップが表示されません。これを機能させるにはどうすればよいですか?2 番目の問題は、行の横にオレンジ色の感嘆符があることです。これは望ましくありません。これは、グリッドまたは行のデフォルトのスタイリングが原因であると思います。どうすればそれを取り除くことができますか (赤いアウトラインは問題ありません)。