为什么在WPF中使用依赖项属性?如果使用普通CLR属性,会产生什么影响?

为什么在WPF中使用依赖项属性?如果使用普通CLR属性,会产生什么影响?,wpf,properties,dependencies,Wpf,Properties,Dependencies,为什么在WPF中使用依赖项属性?如果使用普通CLR属性,会产生什么影响 如果我使用普通属性而不是依赖属性,会发生什么 正常的clr属性可以和依赖性属性一样工作,那么为什么所需的依赖性属性是为WPF中的自定义/用户控件设计的特殊属性呢。它们比普通CLR属性更强大。例如,它们可以用作数据绑定的目标,它们的值可以从父控件继承,它们可以实现验证、注册更改回调 从msdn: 依赖属性的目的是提供一种基于其他输入值计算属性值的方法。这些其他输入可能包括系统属性(如主题和用户首选项)、即时属性确定机制(如数据

为什么在WPF中使用依赖项属性?如果使用普通CLR属性,会产生什么影响

如果我使用普通属性而不是依赖属性,会发生什么
正常的clr属性可以和依赖性属性一样工作,那么为什么所需的依赖性属性是为WPF中的自定义/用户控件设计的特殊属性呢。它们比普通CLR属性更强大。例如,它们可以用作数据绑定的目标,它们的值可以从父控件继承,它们可以实现验证、注册更改回调

从msdn:

依赖属性的目的是提供一种基于其他输入值计算属性值的方法。这些其他输入可能包括系统属性(如主题和用户首选项)、即时属性确定机制(如数据绑定和动画/情节提要)、多用途模板(如资源和样式)或通过与元素树中其他元素的父子关系已知的值。此外,可以实现依赖项属性以提供自包含的验证、默认值、监视其他属性更改的回调,以及可以基于潜在运行时信息强制属性值的系统。派生类还可以通过重写依赖项属性元数据而不是重写现有属性的实际实现或创建新属性来更改现有属性的某些特定特征

查看更多信息