none
WPF datagrid column keep sorting issue RRS feed

  • 问题

  • 请问:一个datagrid,我在数据的某一列做了排序(点击列头),当我更新数据源后(做了字符检索),怎么才能保留这个排序,在新数据源上也应用这个排序?
    2012年4月25日 14:45

答案

  • Hi Crag.Wang,

    首先不清楚你原先是怎么排序的,我的建议是,如果你要保存并且维持DataGrid某一列的排序状态,使用CollectionView 的排序功能,或者直接在绑定数据源集合中进行排序并且维持。

    你可以用一个量来保存先前的排序。然后在新的数据源好了之后,使用先前的 SortDescription 来恢复排序:

    //create a collection view for the datasoruce binded with grid
    ICollectionView dataView = CollectionViewSource.GetDefaultView(DataGrid.ItemsSource);
    //clear the existing sort order
    dataView.SortDescriptions.Clear();
    //create a new sort order for the sorting that is done lastly
    dataView.SortDescriptions.Add(new SortDescription(strPropertyName, paramDirection));
    //refresh the view which in turn refresh the grid
    dataView.Refresh();


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月26日 8:48
    版主