概述
BindableCollection
但是,它添加了一些有用的额外功能:
- 新增方法:AddRange,RemoveRange,Refresh
- 线程安全
新方法
ObservableCollection
Refresh是一种方便。它不会以任何方式修改集合,但会导致触发PropertyChanged 和CollectionChanged 事件,从而向任何 UI 元素指示集合已被修改,并且它们应重新加载其数据。
线程安全
线程安全是通过向 UI 线程分派所有操作(添加、删除、清除、重置等)来实现的。调度使用Execute.OnUIThreadSync,这意味着:
- 这些操作是同步的:在操作完成之前,调用的方法不会返回。
- 如果您已经在UI线程上,不作处理 - 在这种情况下,操作将同步执行。
- 所有PropertyChanged事件和CollectionChanged事件始终在 UI 线程上引发。
最后一点意味着 BindableCollection