简短的问题:
如果控件由多个部分组成(如 DatePicker,它由 PART_Root、PART_Button、PART_Textbox 等组成(,如何将内部部件的控件模板的触发器绑定到整个控件的有效性?
长问题:
我正在尝试自定义 DatePicker 控件模板,它由几个主要部分组成,最重要的是:
- PART_Root
- PART_Button
- PART_TextBox
我通过使用样式定位 DatePickerTextBox 来覆盖PART_TextBox模板,该样式本质上仅替换 DatePicker 的PART_TextBox内容。
现在,我想在PART_Textbox的控件模板中实现一些特殊的自定义验证元素,但无法触发它们显示。我试过使用
<DataTrigger Binding="{Binding Path=Validation.HasError, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DatePicker}}}">
但由于某种原因它不起作用...
请确保绑定的对象实现了接口 INotifyDataErrorInfo。有关实现的示例,请参见此处