【发布时间】:2014-11-14 07:16:18
【问题描述】:
我需要从另一个更新一个 observablecollection,如下例所示:
用集合 B 中的数据更新 ObservableCollection A:
ObservableCollection<Category> A = new ObservableCollection<Category>()
{
new Category()
{
ID = 1,
Name = ABC
},
new Category()
{
ID = 4,
Name = UVW
},
new Category()
{
ID = 2,
Name = DEF
},
new Category()
{
ID = 3,
Name = XYZ
}
}
ObservableCollection<Category> B = new ObservableCollection<Category>()
{
new Category()
{
ID = 1,
Name = ABC
},
new Category()
{
ID = 5,
Name = LMN
},
new Category()
{
ID = 7,
Name = GHI
},
new Category()
{
ID = 3,
Name = XYZ
}
}
更新 ObservableCollection A 后,它应该包含与 B 相同的数据,由于我已将此列表绑定到 UI 列表元素,我不希望它清除,然后一一添加所有元素,这在用户体验中看起来很奇怪.那么是否有任何优化的 LINQ 只遍历两个集合中的所有元素并使用列表 B 的元素更新列表 A
【问题讨论】:
-
更新 A 像这样将更新整个列表,因为列表中的绑定和数据可能很大,导致 UI 有点挂起。这就是我在绑定集合后一次添加每个项目的原因。
标签: c# wpf linq observablecollection