在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; }
}