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

推荐订阅源

Y
Y Combinator Blog
有赞技术团队
有赞技术团队
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
The Cloudflare Blog
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
MyScale Blog
MyScale Blog
博客园_首页
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
罗磊的独立博客

博客园 - 王一平

手把手教你开发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 公布 Visual Studio :: Breakpoints will not currently be hit, symbols are not loaded 关于PropertyChanged事件何时实例化的问题 在xaml文件中使用Command绑定语法运行时报command AG_E_PARSER_BAD_PROPERTY_VALUE 编译通过,但在运行时报Resolution of the dependency failed 关于使用Silverlight Toolkit 3 中的主题后DataGrid无法呈现数据的问题 第二章 开始认识XAML (2)
关于PropertyChanged事件何时实例化的问题
王一平 · 2009-11-29 · 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里面,问题解决。