根据文档,您必须在ListCollectionView的源集合上实现INotifyCollectionChanged以传播集合项的添加/删除。 所以我不明白他的工作方式:
var parent = new Parent();
parent.Childs = new List<Child>();
parent.Childs.Add(new Child());
parent.Childs.Add(new Child());
parent.Childs.Add(new Child());
var view = new ListCollectionView(parent.Childs);
Assert.AreEqual(3, parent.Childs.Count);
Assert.AreEqual(3, view.Count);
parent.Childs.Add(new Child());
Assert.AreEqual(4, parent.Childs.Count);
Assert.AreEqual(4, view.Count);
请问,任何人都能解释一下这是如何运作的吗?
答案 0 :(得分:0)
为什么这不起作用?添加Child
项后,您正在断言。 Count
属性将始终返回相应的项目数。
您需要实现INotifyCollectionChanged
界面的原因是视图能够知道它应该何时刷新UI。
例如,如果将项目添加到要在ListView
中显示的数据绑定集合中,则源集合需要将CollectionChanged
事件提升为新项目以自动显示在视图中。