社区
WPF/Silverlight
帖子详情
依赖属性到底是什么?为什么要用依赖属性?
s_111111
2010-11-12 01:15:06
RT。希望能给个简而明了的回答。
...全文
1025
11
打赏
收藏
依赖属性到底是什么?为什么要用依赖属性?
RT。希望能给个简而明了的回答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mark1-
2011-09-14
打赏
举报
回复
透彻了才知道有什么用。
海涵德
2010-11-13
打赏
举报
回复
不一定要把概念搞得太透,会使用就可以了。
海涵德
2010-11-13
打赏
举报
回复
在动画代码中使用较多。
海涵德
2010-11-13
打赏
举报
回复
依赖属性主要是在代码中操作和使用样式。
绿色夹克衫
2010-11-13
打赏
举报
回复
个人感觉就是方便用数据驱动UI
dui_cky
2010-11-12
打赏
举报
回复
依赖属性,简单的来说,就是 你拖一个控件出来,属性栏里面的东西(如:text,background==),使用起来比较节省内存。
依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值。这些其他输入可以包括外部属性(如用户首选项)、实时属性确定机制(如数据绑定和动画/演示图板)、重用模板(如资源和样式)或者通过与对象树中其他元素的父子关系而获取的值。此外,实现依赖项属性还可以提供可将更改传播到其他属性的回调。
对于属于 DependencyObject 并以某种方式在 UI 中可见的 Silverlight 类型,由于该对象的大部分可设置属性都是依赖项属性,因此这些类型可以支持动画。对于 FrameworkElement 派生类型,依赖项属性还可以支持绑定(作为目标)和样式设置。虽然出于 WPF 兼容性的原因而使有些只读属性仍然是作为依赖项属性来实现的,但只读属性是依赖项属性的可能性非常小。对于 DependencyObject 上的某个可设置属性不是依赖项属性这种不常见的情况,该属性将无法支持动画。同样,FrameworkElement 上不是依赖项属性的某个可设置属性将不能是绑定目标,也不能由样式来设置。
如何定义:
public static readonly DependencyProperty IsSpinningProperty =
DependencyProperty.Register(
"IsSpinning", typeof(Boolean),
typeof(SilverlightExampleClass), null
);
public bool IsSpinning
{
get { return (bool)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}
不懂的可以加我QQ,454162034
s_111111
2010-11-12
打赏
举报
回复
例子不错。能再多说些就更好了?能否有个比较全面的例子,能讲到大部分依赖属性的特性。
xinzhulu
2010-11-12
打赏
举报
回复
1
这个就是依赖属性系统的功能了.
其实在依赖属性内部有一个静态字典列表.以键值对的形式("属性名","值")保存着所有依赖属性及其属性的默认值.
如果我们去取值的话:
Color col = Button.BackColor(假设这个属性是没有重新赋值,用的是默认值)
这就是从那个字典表中根据属性名,取出对应的属性值.
但是如果有多少对象对一个依赖属性赋予了不同的值怎么办????
在依赖属性系统里还有一个值字典表,这个字典表维护了不同对象名使用的依赖属性和属性值.
程序在运行时,如果你修改了一个依赖属性的值,那么依赖属性系统会把这些对象名,属性名和属性值放入值字典表中.
xinzhulu
2010-11-12
打赏
举报
回复
现在,我们如果采用静态属性好不好???
大家都知道,静态成员是类成员,不管你实例化多少个对象,静态成员数量是不会增加的,那么是不是很省内存空间咧????? 肯定的.....
那好,我们现在实例化五个对象,每个对象都去使用同一个依赖属性,那会怎么样??
比方说,
Button1.BackColor = Colors.Red;
Button2.RackColor= Colors.Blue;
.......................
这里BackColor 是依赖属性(静态数据成员).....
你一定会想,静态成员在内存中只有独一份,如果五次修改这个成员的值,那么最终保存下来的只有最后一个赋值????
xinzhulu
2010-11-12
打赏
举报
回复
依赖属性也是属性.但和我们平常认为 的属性不一样,就是这个依赖属性是静态成员.
我们可以想象,在没有依赖属性之前,有一个类从父类继承十个属性,自已也有十个属性.就是二十个属性了.如果我们在程序中实例这个类,搞五个对象出来.那么运行时会分配一百个属性的空间,来容纳.
但是其中大部分属性都在编程时,都没有去修改属性值. 使用的都是父类或本类的初始时的默认值.
这样比较浪费内存空间.
比如我们在界面上拖五个按钮. 每个按钮都八,九十个属性, 但你的代码中去使用了多少个咧???这个你知道的....
WPF经典教程之
依赖
项
属性
和路由事件
Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR)
属性
的功能。这些服务通常统称为 WPF
属性
系统。由 WPF
属性
系统支持的
属性
称为
依赖
项
属性
。本概述介绍 WPF
属性
系统以及
依赖
项
属性
的功能,这包括如何在可扩展应用程序标记语言 (XAML) 中和代码中使用现有的
依赖
项
属性
。..... (更多资源:http://cleopard.download.csdn.net/) (福利:http://xuemeilaile.com/) WPF经典教程之WPF体系结构 http://download.csdn.net/detail/cleopard/7999393 WPF经典教程之WPF应用程序管理 http://download.csdn.net/detail/cleopard/8002969 WPF经典教程之WPF窗体 http://download.csdn.net/detail/cleopard/8002979 WPF经典教程之StackPanel、WrapPanel、DockPanel布局 http://download.csdn.net/detail/cleopard/8002985 WPF经典教程之Grid、UniformGrid布局 http://download.csdn.net/detail/cleopard/8002993 WPF经典教程之Canvas、InkCanvas布局 http://download.csdn.net/detail/cleopard/8002997 WPF经典教程之WPF控件模型 http://download.csdn.net/detail/cleopard/8002999 WPF经典教程之WPF控件内容模型 http://download.csdn.net/detail/cleopard/8003009 等。。。。
syrinj, Unity3D的简单
依赖
注入.zip
syrinj, Unity3D的简单
依赖
注入 Syrinj 轻量级
依赖
注入 &方便
属性
发布 1.1.1可用 ! (8/1/16)目录简介示例设置这是什么?为什么使用这个?文档文档扩展示例方便
属性
注入
属性
注释故障排除简介示例方便
WPF基础——
依赖
属性
大家都知道WPF带来了很多新的特性,其中一个就是引入了一种新的
属性
机制——
依赖
属性
。
依赖
属性
出现的目的是用来实现WPF中的样式、自动绑定及实现动画等特性。
依赖
属性
的出现是WPF这种特殊的呈现原理派生出来的,与.NET普通
属性
不同的是,
依赖
属性
的值是依靠多个提供程序来判断的,并且其具有内建的传递变更通知的能力。
依赖
属性
基本应用在了WPF的所有需要设置
属性
的元素。
依赖
属性
根据多个提供对象来决定它的值...
对
依赖
属性
的理解
依赖
属性
:一种可以自己没有值,通过使用Binding从数据源获得值的
属性
。拥有
依赖
属性
的对象叫做
依赖
对象(Denpendency Object)。
依赖
属性
可以节省实例对内存的开销。 为
依赖
属性
添加了CLR
属性
包装后,其就具有了扮演数据源和数据目标的双重角色的能力。另外,尽管
依赖
属性
所对应的
依赖
对象没有实现INotifyPropertyChanged接口,但是当
属性
发生改变时与之关联的Binding对象依然可以得到通知,
依赖
属性
天生就是合格的数据源。 Background:“{Binding Pr.
深入了解WPF的
依赖
属性
及数据绑定
依赖
属性
是WPF框架中用于实现数据绑定和
属性
值继承的核心机制之一。与普通
属性
相比,
依赖
属性
不仅支持通过数据绑定来动态更新UI元素,还能够响应
属性
值变化时触发相关的UI更新。
依赖
属性
是通过类来实现的,它是一个公开的静态只读字段,WPF中的大多数可视化和非可视化元素都使用
依赖
属性
来支持这些高级功能。// 示例代码:定义一个
依赖
属性
要理解
依赖
属性
的注册过程,首先需要了解WPF
属性
系统的几个核心组件:DependencyProperty 类:这是
依赖
属性
系统的基础类,用于声明
依赖
属性
。
WPF/Silverlight
8,757
社区成员
12,032
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章