我已经在我的附加属性SetXXX和GetXXX静态方法上设置了断点。 在Xaml中,我已经为附加属性分配了值。 但是,我期望调用Set或Get静态方法,但它们没有被调用。 附加属性按预期工作,如果我在代码中调用SetXXX和GetXXX方法,则按预期工作。
为什么在从Xaml设置时不调用这些方法?
JD.
为什么在从Xaml设置时不调用这些方法?
JD.
XAML在处理附加属性时不能理解普通的属性getter和setter。相反,它直接使用DependencyObject
上的底层API,即GetValue
和SetValue
方法。
如JaredPar所解释的, 当您使用XAML时,GetXXX/SetXXX方法不会被调用。
但我想补充一点:
如果您需要在代码中跟踪附加属性的更改,则应使用元数据。您可以在元数据中设置回调以在属性更改时触发它,并在代码中跟踪它。