短い質問:
複数のパーツ (PART_Root、PART_Button、PART_Textbox などで構成される DatePicker など) で構成されるコントロールがある場合、内部パーツのコントロール テンプレートのトリガーをコントロール全体の有効性にバインドするにはどうすればよいでしょうか?
長い質問:
DatePicker コントロール テンプレートをカスタマイズしようとしていますが、いくつかの主要な部分で構成されています。
- PART_ルート
- PART_ボタン
- PART_TextBox
DatePickerTextBox をスタイルでターゲットにすることにより、PART_TextBox のテンプレートをオーバーライドしています。これは、本質的に、DatePicker の PART_TextBox コンテンツのみを置き換えます。
ここで、PART_Textbox のコントロール テンプレートにいくつかの特別なカスタム検証要素を実装したいと考えていますが、それらを表示するようにトリガーできません。使ってみました
<DataTrigger Binding="{Binding Path=Validation.HasError, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}}">
しかし、なぜかうまくいかない…