【发布时间】:2010-04-03 04:25:27
【问题描述】:
我在附加属性 SetXXX 和 GetXXX 静态方法上设置了断点。在 Xaml 中,我已将值分配给附加属性。但是,我期望调用 Set 或 Get 静态方法,但事实并非如此。附加属性按预期工作,如果我在代码中调用 SetXXX 和 GetXXX 方法,那么它会按预期工作。
为什么从 Xaml 设置的方法没有被调用?
法学博士
【问题讨论】:
我在附加属性 SetXXX 和 GetXXX 静态方法上设置了断点。在 Xaml 中,我已将值分配给附加属性。但是,我期望调用 Set 或 Get 静态方法,但事实并非如此。附加属性按预期工作,如果我在代码中调用 SetXXX 和 GetXXX 方法,那么它会按预期工作。
为什么从 Xaml 设置的方法没有被调用?
法学博士
【问题讨论】:
当涉及到附加属性时,XAML 不理解普通的属性 getter 和 setter。相反,它直接进入DependencyObject 上的较低级别的 API。即GetValue 和SetValue 方法。
【讨论】:
作为JaredPar explained,当您使用 XAML 时,不会调用 GetXXX/SetXXX 方法。
不过,我想补充一点:
如果您需要跟踪代码中附加属性的更改,您应该使用元数据。您可以在元数据中设置callback,以便在属性更改时触发,并在您的代码中进行跟踪。
【讨论】: