私はWPFの新機能ですが、最後のカップルでMVVを多用しています。 WPFは、(Xceed WPF ToolkitのNumericUpDownコントロールを使用して)カスタム列テンプレートを持つDataGridを表示します。 3つの列には、3Dベクトルの10進数の座標が含まれています。 IDataErrorInfoを使用して、ベクトルの長さが決して0でないことを確認します(3つの列はすべて同時に0になることはできません)。これまでのところうまくいきました。検証に失敗するとセルは赤くマークされますが、ツールチップなどにエラーメッセージを表示することもできます。WPF:IDataErrorInfoのときにカスタムDataGridセルにツールチップのメッセージを表示
<DataGrid [...]>
<DataGrid.Columns>
[...]
<DataGridTemplateColumn Header="X" [...]>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<xctk:DecimalUpDown Value="{Binding PositionX, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}">
</xctk:DecimalUpDown>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
[... and same thing for Y and Z]
</DataGrid.Columns>
</DataGrid>
私は今、数時間のためにこだわっているところですので、私はあなたが私をここに役立つことを願っ:私はカスタムテンプレート列にエラーツールチップを表示するにはどうすればよい
?
エラーツールチップで多くの記事やスレッドを読んだことがありますが、それらのほとんどはプレーンテキストボックスやDataGridTextColumnsにあり、多くは試してみましたが、これまで動作させることはできませんでした。ここから
<Style x:Key="errorStyle" TargetType="{x:Type TextBox}">
<Setter Property="Padding" Value="-2"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
:
それらのほとんどは、次のようになり https://msdn.microsoft.com/library/ee622975%28v=vs.100%29.aspx
以上exsamples:
- Display validation error in DataGridCell tooltip
- https://stackoverflow.com/a/7900510/5025424
- 0123この上
- WPF data validation and display error message IDataErrorInfo and error templates
何事も私に任意のツールチップを示しませんでした。
あなたは、私にこのスタイルのトリガ定義が定義が
- をヒントを与えることができます列は何らかの形でこの定義を参照する必要がありますか?
ありがとうございます!添付Validation.HasErrorプロパティがtrueを返す場合CellTemplateにコントロールのToolTipプロパティを設定し、トリガーとスタイルへのコントロールのスタイルプロパティを設定し
ありがとうございましたが、完璧に動作します!私は近くにいることは分かっていましたが、スタイルなどの経験はありませんでした... – John