在wpf中,定义集合属性时,字段可以使用“ObservableCollection<T>”定义,以保证数据改变时的自动通知功能;属性可以使用“ICollection”定义,保证属性的灵活性,且只读,保证属性的安全性;对属性值的更改可以通过“ICollection.Add”方法来实现。需要说明的是:属性始终指向“字段”(属性可以看做 指针 或 变量的引用;而字段才是真正的对象;属性指向“字段”),所以,表面上是属性在改变,而实际上是“字段”在变化。

通过打断点分析可知:“PieData”属性值的类型不是“ICollection< ChartDataItem>”,而是“ ObservableCollection<ChartDataItem>”

,很有趣吧!

private ObservableCollection<ChartDataItem> pieData = new ObservableCollection<ChartDataItem>();

public ICollection< ChartDataItem> PieData
  {
        get { return pieData; }
  }

最新文章

  1. 采用dom4j和反射模拟Spring框架的依赖注入功能
  2. DateUtil
  3. 基于canvas的前端图片压缩
  4. 用React.addons.TestUtils、Jasmine进行单元测试
  5. Android直接通过ip进行Http请求
  6. HDU_1426——数独问题,DFS
  7. bootstrap switch功能
  8. sptt规范介绍
  9. 4.Smarty模板之间调用
  10. Redis详解(一)------ redis的简介与安装
  11. devm_xxx机制【转】
  12. 用jquery获取A标签href参数
  13. python遇到的文件错误
  14. python--第四天总结
  15. Python 入门基础6 --字符编码、文件操作1
  16. {sharepoint} SetPermission
  17. 本地Jmeter脚本部署在Jenkins上 - Windows
  18. mysql主从同步加读写分离
  19. 【转】Java设计模式-单例模式详解
  20. 通过Qt从URL下载文件

热门文章

  1. 【node】----mocha单元测试框架-----【巷子】
  2. SpringCloud--Ribbon负载均衡
  3. [Haskell]解决hslua unknown symbol `___s trtod&#39;的问题
  4. CentOS下LVM逻辑卷管理技术解释
  5. vue - 指令系统
  6. appfog 使用
  7. Oracle监控的关键指标
  8. Flask系列(八)flask-session组件
  9. 模块讲解----configparser模块(my.cnf配置文件操作)
  10. addslashes — 使用反斜线引用字符串