惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
Intezer
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cybersecurity and Infrastructure Security Agency CISA
N
News | PayPal Newsroom
T
Tenable Blog
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
P
Privacy International News Feed
IT之家
IT之家
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
博客园_首页
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
NISL@THU
NISL@THU
I
InfoQ
D
DataBreaches.Net
有赞技术团队
有赞技术团队
K
Kaspersky official blog
Security Latest
Security Latest
The Register - Security
The Register - Security
Hugging Face - Blog
Hugging Face - Blog
S
Security @ Cisco Blogs
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
AI
AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic

博客园 - From Ocean

how to solve error when start Hyper-V quick create app error log4j 2使用properties文件进行配置 (转载)Tips on using log4net RollingFileAppender by Rohit Gupta (Asp.Net)转载-用Powershell 建立IIS web site (DP)降低代码重构的风险(转载) (Life)牛人的学习方法(转译文) (WPF)WPF事件要点-WPF宝典笔记 (WPF)路由事件要点-WPF宝典笔记 (Ruby)Ubuntu12.04安装Rails环境 (Ruby)方法的一些有趣的地方--待补充 (Ruby)Ruby中区块用的一些潜藏关键字 (Ruby)类变量,实例变量,类常量,如何访问变量 (WPF)WPF要点之命令-深入浅出WPF笔记 (WPF)WPF要点之事件-深入浅出WPF笔记 (Algorithm)计算机科学中最重要的32个算法_转载infoq上的文章 (转载)postgresql无法远程登录(设置远程登陆的三点注意事项) (.Net,DevExpress)关于devexpress部分aspx控件需要注意的细节_持续补充ing (.Net,DevExpress)devexpress源码编译需要注意的地方 (Silverlight,WCF,Socket,Cocurrency)一周浏览碰到不错的文章
(WPF)依赖属性要点-WPF宝典笔记
From Ocean · 2012-10-09 · via 博客园 - From Ocean

依赖属性是建立在原有类属性基础之上的,且只能作用于dependencyobject对象上。可以当作wpf做了一个wrapper,声明依赖属性之前需要针对该属性的source和target以及影响范围先实例化一个frameworkmetadata的元数据,然后再对该属性进行register;接着利用dependencyobject自带的setvalue和getvalue方法进行类属型层次的封装。

某些类的依赖属性是可以共享的,通过调用该属性的addowner方法重用该属性,达到节约内存的目的

依赖属性还提供了一种较为特殊的兄弟:附加属性,它同样需要metadata实例一起使用registerattached方法进行声明,而且因为该特例的使用较为特殊相当于给其他类添加上本来就不具备的属性,所以不需要为该类属性加以普通.net属性具备的get和set的wrapper,但是需要声明两个静态方法g(s)etpropertyname以调用附加属性操作的目标类型的setvalue和getvalue方法从而取值和赋值。

tip:即使依赖属性未以附加属性进行声明,目标类型仍然可以利用setvalue方法对该依赖属性进行赋值,但是xaml代码中是不会有智能提示。

对于依赖属性的赋值,wpf提供了3种回调事件(根据触发链顺序)coercevaluecallback、validatevaluecallback和propertychangedcallback,前一事件未顺利触发的话均会导致后面的事件无法触发。由于validatevaluecallback无法访问到依赖属性的源对象即无法根据其他属性进行判断,因此碰到类似情况可以考虑利用coercevaluecallback事件(该事件是绑定到metadata上,因此其参数包含有源对象).对于coercevaluecallback事件应该谨慎用之,特别是涉及到对其它依赖属性进行更改的时候。