我有与List绑定的项目控件。当我尝试在该列表中添加项目时,它不会反映在项目控件(UI)中。但是当替换Observable Collection而不是list时它是完美的工作原因是什么原因你可以帮助我吗?
是否可以直接对可观察集合进行排序?
答案 0 :(得分:2)
不同之处在于ObservableCollection<T>
类实现了INotifyCollectionChanged接口,并在添加和删除项目时引发CollectionChanged
事件。这是UI自动更新所必需的。 List<T>
未实现此接口。
是否可以直接对可观察集合进行排序?
对源集合本身进行排序的最简单方法是在创建它时将已排序的IEnumerable
传递给它:
this.Collection = new ObservableCollection<Type>(list.OrderBy(x => x.Property));
它没有内置Sort
方法,可以在内部对项目进行排序。