【发布时间】:2011-04-13 22:12:17
【问题描述】:
首先让我澄清一下(如果标题不够清楚的话):我讨论的是来自 .NET 4.0 框架的System.Windows.Controls.DataGrid,不是工具包版本。
我目前正在我的项目中构建一组可重复使用的小型类/视图模型/等,以便为我的应用程序构建一个相当强大的 DataGrid。
现在,默认情况下,给定IEnumarable<> ItemsSource,DataGrid 控件支持单击标题列排序。
但是,我的实现现在使用CollectionViewSource 和ICollectionView 将数据成员公开给DataGrid。当以这种方式连接时,它似乎依赖于 SortDescriptions 进行排序。
虽然我喜欢通过代码进行控制(可以与各种事物挂钩),但我还要求我的用户能够单击标题栏来对他们的结果进行排序。我正在寻找一种方法来钩住标题栏的点击以指示我的代码适当地调整CollectionViewSource。
- 我是否必须重新设置标题按钮的样式才能触发事件?
- 有没有办法从 DataGrid 控件的现有标题中挂钩排序事件?
- 解决此问题的最佳方法是什么?
- 我是否错误地使用了
ICollectionView?
【问题讨论】: