【发布时间】:2015-02-25 15:04:04
【问题描述】:
我有一个这样定义的 XAML DatePicker:
<DatePicker x:Name="startDateDatePicker" Validation.ErrorTemplate="{StaticResource validationTemplate}"
SelectedDateChanged="window_DatePicker_SelectedDateChanged" Validation.Error="ValidationError">
<DatePicker.SelectedDate>
<Binding Path="startDate" Mode="TwoWay" NotifyOnValidationError="True" ValidatesOnExceptions="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<!-- A couple custom rules. //-->
</Binding.ValidationRules>
</Binding>
</DatePicker.SelectedDate>
</DatePicker>
我需要在我的DatePicker.SelectedDate 对象中的Binding 对象上的Binding.TargetUpdated 和Binding.SourceUpdated 事件后面附加一个事件处理程序。
但是,当我重新定义我的标签时:
<Binding Path="startDate" Mode="TwoWay" NotifyOnValidationError="True" ValidatesOnExceptions="True" UpdateSourceTrigger="PropertyChanged" TargetUpdated="BindingTargetUpdated" SourceUpdated="BindingSourceUpdaed">
我收到错误消息:
附加属性“TargetUpdated”只能应用于派生自“DependencyObject”的类型。
和
附加属性“SourceUpdated”只能应用于派生自“DependencyObject”的类型。
我需要做什么才能绑定到这些事件?我理解错误消息,但我不知道它与 <DatePicker.SelectedDate> 项目有何关系,因为它应该是 DependencyObject。
【问题讨论】:
-
不要针对
Binding,而是针对DatePicker:<DatePicker ... TargetUpdated="BindingTargetUpdated">。针对Binding但是你需要设置NotifyOnTargetUpdated="True" -
@dkozl 如果您不介意发布说明上述评论的答案并更新 XAML 代码,我会给您答案。
标签: wpf xaml events binding datepicker