データにバインドされた一連のコントロールがあり、プログラムでバリデーターをバインディングに追加したいと考えています。現在、ビジュアル ツリーを繰り返し処理してバインディングを含むコントロールを見つけ、これらのコントロールにバリデーターを追加することができます。しかし、特定の検証が必要なコントロールをさらに指定するために、スタイルを使用したいと考えました。したがって、私の XAML は次のようになります。
<TextBox Name="someTextBox" Style="{StaticResource optionalNumericTextBox}" />
ここで、optionalNumericTextBox
スタイルは検証エラー テンプレートの追加と、このテキスト ボックスにオプションの数値バリデータを適用する必要があることを示すデコレータの両方として機能します。
この問題は、ビジュアル ツリーをたどり、バインディングを含むコントロールを発見し、使用中のスタイルを特定する必要があるときに発生します。現在、私は試しました
dependencyObject.GetValue(FrameworkElement.StyleProperty)
これによりStyleオブジェクトが得られますが、私が知る限り、このオブジェクトには「optionalNumericTextBox」値が含まれていません。キーを特定することさえ可能ですか、それともこの情報は XAML リーダーで失われますか?