什么是依赖属性?它与普通房产有什么不同?依赖属性的目的是什么?为何使用它,何时使用?
答案 0 :(得分:14)
依赖属性:由 DependencyProperty 支持的属性。
依赖项属性的目的是提供一种方法来计算基于的值的属性值。
这些其他输入可能包括系统属性,例如主题和用户偏好,即时属性确定机制(如数据绑定和动画/故事板),多用途模板(如资源和样式)或通过父级知道的值 - 子元素与元素树中其他元素的关系。
它具有以下功能:
可以在样式中设置属性。
可以通过数据绑定设置属性。
可以使用动态资源引用设置属性。
该属性可以从元素树中的父元素自动继承其值。
该属性可以设置动画。
属性可以报告何时更改了属性的先前值并且可以强制执行属性值。
该属性向WPF报告信息,例如更改属性值是否应该要求布局系统重新组合元素的视觉效果。
该属性在Visual Studio的WPF Designer中获得支持。例如,可以在“属性”窗口中编辑属性。
(取自MSDN的内容)
答案 1 :(得分:4)
Dependency properties将它们的值存储在类之外,因此可以将属性分配给对象,而无需更改对象的类。它们还支持WPF中常见的情况,其中对象可能具有很多属性,但只有少数具有非默认值。依赖项属性可以具有默认值,因此这会减少内存使用量。还有更多内容,请阅读MSDN上的文章:Dependency Properties Overview。
答案 2 :(得分:4)
我认为MSDN article可以为您提供更多信息。
从我读到的是,依赖属性依赖于其他值。
依赖属性的目的 是提供一种计算方法 基于该值的属性值 其他输入。这些其他输入 可能包括系统属性 作为主题和用户偏好, 及时确定财产 数据绑定和 动画/故事板,多用途 资源和模板等 样式或已知的值 亲子与他人的关系 元素树中的元素。在 另外,依赖属性可以 实施以提供独立的 验证,默认值,回调 监视器更改为其他 属性,以及可以的系统 基于的强制性价值 潜在的运行时信息 派生类也可以改变一些 具体特征 通过覆盖现有财产 依赖属性元数据,而不是 而不是压倒实际的 实施现有的财产 或创建新属性。
答案 3 :(得分:2)
如果您正在谈论具有Dependency属性的属性(在Microsoft.Practices.Unity
中定义)
[Dependency]
public string MyProperty { get; set; }
然后,Unity框架将其用于依赖注入(DI)。基本上,属性值由DI框架在运行时设置,而不是直接在代码中设置。
但是,System.Runtime.CompilerServices
中定义了另一个Dependency属性。请问你能用你的意思更新你的问题。