我在看this教程。在大约15:40左右,发言者说像LINQ查询这样的东西不会创建像BindingListCollectionView
这样的丰富集合。我想也许这意味着更改不会保存到数据库或其他东西。所以我试着替换
var result = database.Customers.Execute(System.Data.Objects.MergeOption.AppendOnly);
与
var result = from cust in database.Customers
where cust.City == "Seattle"
select cust;
并且一切正常。
答案 0 :(得分:9)
ObservableCollection有一个事件,当它们的内容发生变化时会被触发,这样ListView,ComboBox等可以在数据发生变化时与你的数据保持同步。如果列表的内容永远不会改变,则不需要使用ObservableCollection。
答案 1 :(得分:0)
有时您不能使用ObservableCollection,因为您已经编写了要绑定的自定义集合类。在这种情况下,您可以在自定义集合上实现ICollectionChanged和IPropertyChanged接口。
然后,您的自定义集合将像ObservableCollection一样工作(或者至少在集合中的实现范围内)。