【发布时间】:2010-09-23 19:40:30
【问题描述】:
我在 Silverlight 应用程序中使用 PagedCollectionView 将 ObservableCollection<T> 绑定到 DataGrid。在这种情况下,源集合在其生命周期内可能会发生无限数量的更新。但是,似乎如果我使用PropertyGroupDescription 对DataGrid 中的元素进行分组,那么每次使用不适合的元素更新源集合时,我都需要使用PagedCollectionView.GroupDescriptions.Add(...) 重新应用该分组到现有的分组中。有没有办法让分组自动刷新/重新计算?
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);
}
谢谢,如果我可以提供任何其他信息,请告诉我。
【问题讨论】:
标签: c# .net wpf silverlight wpfdatagrid