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

推荐订阅源

N
News and Events Feed by Topic
D
Docker
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
F
Full Disclosure
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
L
LangChain Blog
H
Help Net Security
B
Blog
T
Tailwind CSS Blog
V
V2EX
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
美团技术团队
A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
I
InfoQ
Project Zero
Project Zero
I
Intezer
Google DeepMind News
Google DeepMind News
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
Last Week in AI
Last Week in AI
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
Spread Privacy
Spread Privacy
S
Securelist
Recorded Future
Recorded Future
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 叶小钗
S
Security Affairs
Blog — PlanetScale
Blog — PlanetScale
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
The Hacker News
The Hacker News

博客园 - 王一平

手把手教你开发Windows Phone 8应用程序(序) 使用苹果版博客编辑器发布的文章 关于翻译内容的阅读提示 第二章 使用Silverlight增强您的站点 第一章 入门 第二章 开始认识XAML (3) [转贴] Obscure Error: AddressFilter mismatch at the EndpointDispatcher ProxyService module错误提示,没有实现某某方法 在采用了PRISM框架中为TabControl的TabItem应用自定义样式的问题 安装好Oracle 10G Express后,在事件查看器里出现“The OracleXETNSListener service terminated unexpectedly”的错误 编译通过,但运行时报resolution of the dependency failed 介绍Silverlight Silverlight 4 Beta 公布 关于PropertyChanged事件何时实例化的问题 Visual Studio :: Breakpoints will not currently be hit, symbols are not loaded 在xaml文件中使用Command绑定语法运行时报command AG_E_PARSER_BAD_PROPERTY_VALUE 编译通过,但在运行时报Resolution of the dependency failed 关于使用Silverlight Toolkit 3 中的主题后DataGrid无法呈现数据的问题 第二章 开始认识XAML (2)
关于PropertyChanged事件何时实例化的问题
王一平 · 2009-11-19 · via 博客园 - 王一平

由于Silverlight自带的Button控件没有将IsEnabled属性实现为依赖项属性,因此,只有自己构造一个Button来实现IsEnabled属性的依赖项特性,大家知道与依赖项属性进行绑定的值必须是一个可被监听的值,也就是实现了INotifyPropertyChange接口的类,然后属性要放到OnPropertyChanged方法里面来进行监听,OnPropertyChanged方法会判断PropertyChangedEventHandler的实例是不是为空,如果不为空才会去监听,问题就出在PropertyChangedEventHandler何时被实例化,在我的项目里面我的ViewModel里面有一个自定义属性名叫IsButtonEnabled(类型为Boolean),这个属性用来和我的View里面的一个自定义按钮的属性IsButtonEnabled进行绑定的。在MVVM模式中,由于ViewModel先于View被实例化,所以此时的PropertyChangedEventHandler的实例为null,只有View被实例化并和ViewModel进行绑定后,PropertyChangedEventHandler才被实例化,在我的项目中后台逻辑是由View的PageLoad事件进行启动的。我之前的做法是,在ViewModel的构造方法中对IsButtonEnabled属性进行初始化,遗憾的是PropertyChanged并没有监测值的变化,因为此时的PropertyChangedEventHandler的实例还是null,后来我把对IsButtonEnabled属性的设置放到了View的PageLoad里面,问题解决。