0

我有一个绑定到 ListCollectionView 的列表视图。LCV 在任何时候都有一个排序描述。我正在以这种方式更新集合:

IEditableCollectionView IEditView = lvBatches.Items as IEditableCollectionView;

IEditView.EditItem(m_collectionView.CurrentItem);//I've also tried passing MyListView.SelectedItem
((TestData)IEditView.CurrentEditItem).start = frm.newDate;
((TestData)IEditView.CurrentEditItem).edited = true;
IEditView.CommitEdit();

但是,当我这样做时,列表视图的项目没有任何反应。如果我重新排序列表,则会反映更改。集合上的 Refresh() 也会更新列表视图,但这就像使用炸药棒打开汽水罐一样,从我收集的内容来看。

有没有人有任何想法。我上面的代码看起来像我在网络上看到的例子,所以我不认为这是问题所在。人们是否知道任何常见的错误,也许与排序有关?我让它工作,现在它没有,我不知道是什么破坏了它。

提前致谢。

4

2 回答 2

3

请参阅我关于创建VeryObservableCollection的回答。

您遇到的问题是集合不会仅通过属性更改来更新——CollectionChanged 仅在您添加或删除元素时才会触发。因此,您需要在属性更改时挂钩 PropertyChanged 并发送 CollectionChanged,这就是 VeryObservableCollection 所做的。

于 2011-07-29T20:42:43.367 回答
1

你打电话给 NotifyPropertyChanged 吗?如果 Refesh() 显示正确的值,那么它们很可能在集合中,但 UI 必须知道更新值。

于 2011-07-29T22:06:06.880 回答