我正在使用PagedCollectionView
將我的Silverlight應用中的ObservableCollection<T>
綁定到DataGrid
。在這種情況下,源集合可能會在其生命週期內導致無限次數的更新。但是,如果我使用PropertyGroupDescription
對DataGrid
中的元素進行分組,則需要每次使用PagedCollectionView.GroupDescriptions.Add(...)
重新應用該分組時,使用不符合現有分組的元素更新源集合。有沒有辦法讓分組自動刷新/重新計算?PagedCollectionView分組似乎不會在將新元素添加到源集合時自動刷新
public ObservableCollection<DataItem> DataItems
{
get { return _dataItems; }
private set { _dataItems = value; }
}
public PagedCollectionView ItemsView
{
get { return _itemsView; }
private set { _itemsView = value; }
}
public MyGridControl()
{
// Initialize data members
DataItems = new ObservableCollection<DataItem>();
ItemsView = new PagedCollectionView(GridDataItems);
Loaded += new RoutedEventHandler(MyGridControl_Loaded);
}
private void MyGridControl_Loaded(object sender, RoutedEventArgs e)
{
_myGrid.ItemsSource = ItemsView;
}
public void RegisterDataItem(DataItem item)
{
DataItems.Add(item);
/* To get grouping to work like I want, I have to add this:
* ItemsView.GroupDescriptions.Clear();
* ItemsView.GroupDescriptions.Add(new PropertyGroupDescription("GroupName"));
*/
}
public void UnregisterError(DataItem item)
{
DataItem.Remove(item);
}
謝謝,讓我知道如果我可以提供任何其他信息。
我沒有使用IsReadOnly。必須有另一個原因。 – Patrick 2010-11-22 17:50:52