WPF中 List<T>与 ObservableCollection<T>的 区别
WPF中 List<T>与 ObservableCollection<T>的 区别
C#中 List<T>与ObservableCollection<T>的用法基本上是一样的。
都是继承 IEnumerable<T>等基本接口
主要区别:
list<T>:
当T继承于INotifyPropertyChanged时,如果list<T>中的属性发生改变,则通知UI属性值已发生改变。但当list<T>集合变化时,list<T>就无法通知前端UI了
ObservableCollection<T>:
IEnumerable<T>自己已经继承过INotifyCollectionChanged,INotifyPropertyChanged等方法,所以
当ObservableCollection<T>集合变化时,会自动通知绑定该ObservableCollection<T>的控件并做相应修改。
如果希望当T中的属性发生改变时通知UI,则T也需要继承于INotifyPropertyChanged。