为什么在XAML中不调用附加属性Set和Get静态方法?

JD.*_*JD. 4 .net wpf

我在附加的属性SetXXX和GetXXX静态方法上设置了断点.在Xaml中,我已为附加属性分配值.但是,我期待调用Set或Get静态方法,但它们不是.附加属性按预期工作,如果我在代码中调用SetXXX和GetXXX方法,那么它是可行的.

为什么从Xaml设置时不调用方法?

JD.

Jar*_*Par 7

当涉及到附加属性时,XAML不了解正常属性getter和setter.相反,它直接进入较低级别的API DependencyObject.即GetValueSetValue方法.


Ree*_*sey 6

正如JaredPar解释的那样,当您使用XAML时,不会调用GetXXX/SetXXX方法.

我想添加一些东西:

如果您需要在代码中跟踪对附加属性的更改,则应使用元数据.您可以在元数据中设置回调,以便在属性更改时触发,并在代码中跟踪它.

  • @芦苇.参考第1点,我删除了GetXXX和SetXXX方法,并得到一个XAMLParserException,表示在XML名称空间中不存在Attached属性.所以它们似乎必须存在? (2认同)