WPF - 从内部控件的部件控件模板触发器访问父属性



简短的问题:

如果控件由多个部分组成(如 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。有关实现的示例,请参见此处

最新更新