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

时间:2013-06-17 12:45:02

标签: c# .net wpf user-interface controltemplate

简短问题:

如果您有一个由多个部分组成的控件(如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}}}">

但由于某种原因,它不起作用......

1 个答案:

答案 0 :(得分:0)

请确保您绑定的对象实现了接口INotifyDataErrorInfo。有关实施的示例,请参阅here