検証ステータスに応じて、テキスト ボックスに特定のテキストをツール ヒントとして表示したいと考えています。これを行うには、現在次のコードを使用しており、機能します。
<TextBox Name="textBox1">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="False">
<Setter Property="ToolTip" Value="{Binding XPath=HelpText/Description, Mode=OneTime}" />
</Trigger>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
エラーがない場合は xml ファイルから読み込んだ説明テキストが表示され、エラーがある場合は検証エラー文字列が表示されます。
問題は、このスタイルをコピーしてすべてのテキスト ボックスに適用する必要があることです (そして XPath を変更します。テキスト ボックスごとに一意です)。次のように、すべてのテキスト ボックスで参照するだけです。
<TextBox Name="textBox2" Style="{StaticResource TextBoxStyle}" />
ただし、XPath はテキストボックスごとに異なるため、自分のスタイルを Window.Resources に配置することはできません。スタイルでインスタンス固有の XPath を使用できるようにするにはどうすればよいですか? 新しいテキスト ボックスを作成して TextBox から派生させずにこれを行う方法はありますか? この場合、添付プロパティを使用できるかどうか疑問に思っていましたが、それらがどのように機能するかわかりません。
前もって感謝します。