我使用集合视图来过滤,分组和排序我的项目但是当我在源中删除或添加组件时,视图不会更新。
来源:
public ObservableCollection<Component> Components
{
get
{
return mComponents;
}
}
CollectionViewSource:
this.ComponentCollection = new CollectionViewSource();
this.ComponentCollection.Source = this.Components;
this.ComponentCollection.GroupDescriptions.Clear();
this.ComponentCollection.GroupDescriptions.Add(new PropertyGroupDescription("Template.ComponentType"));
this.ComponentCollection.SortDescriptions.Clear();
this.ComponentCollection.SortDescriptions.Add(new System.ComponentModel.SortDescription("Name", System.ComponentModel.ListSortDirection.Ascending));
this.ComponentCollection.Filter += this.Filter;
在视图中添加或删除组件的唯一方法是重新应用源:
this.ComponentCollection.Source = this.Components;
this.ComponentCollection.View.Refresh();
这是我使用CollectionViewSource的方式:
ItemsSource="{Binding Path=ComponentTemplateCollection.View.Groups}"
我对过滤集合没有任何问题,这很好用但是当我从组件this.Components.Remove(x)
删除或添加内容时它什么也没做。
答案 0 :(得分:0)
显然某些mComponents被覆盖了,这是集合视图源的问题。然而,提高房产变无所作为。我还需要在调度程序中调用add和remove。