ObservableCollection Databinding performance

后端 未结 1 629
清酒与你
清酒与你 2020-12-18 05:34

I would like to know why according to this article and observable collection binds significantly faster(20 ms vs 1685ms, that\'s 800X faster) than a List<> collection in

相关标签:
1条回答
  • 2020-12-18 06:28

    The comparison in that article isn't between two simple binding operations, those measurements refer to a scenario in which you add a single item to a WPF ListBox that is already bound to either a List<T> or an ObservableCollection<T>.

    As the author remarks:

    ...the CLR List<T> object does not automatically raise a collection changed event. In order to get the ListBox to pick up the changes, you would have to recreate your list of employees and re-attach it to the ItemsSource property of the ListBox. While this solution works, it introduces a huge performance impact. Each time you reassign the ItemsSource of ListBox to a new object, the ListBox first throws away its previous items and regenerates its entire list.

    This explains the performance difference. Even though ObservableCollection<T> is backed by a List<T>, it implements the INotifyCollectionChanged interface, which renders all that extra processing unnecessary.

    0 讨论(0)
提交回复
热议问题