我创建了一个绑定到DynamicItemCollection(实现ITypedList)的DataGrid控件。由于某种原因,我无法通过单击标题对列进行排序(它们甚至不可单击)。
http://www.reimers.dk/jacob-reimers-blog/auto-generating-datagrid-columns-from-dynamicobjects
我的xaml如下:
<DataGrid AutoGenerateColumns="True" CanUserSortColumns="True" IsReadOnly="True" ItemsSource={Binding Data}/>
我错过了什么?是动态数据吗?我如何才能让它排序?
2条答案
按热度按时间fnx2tebb1#
在代码后面声明它
属性用法请在aspx中引用此部分以获取datagrid标记
您可以设置true,false条件。由于默认情况下为true,因此您可以对列进行排序。
np8igboo2#
我知道这是一个老职位,但经过一些研究,它似乎是真的很简单:原始链接不再可用,因此有一种方法可以查看remeirs blog
因此,基于这些博客,您现在可以从dynamicObject自动生成一个Datagrid(例如,用于将对象与CSV等文件内容混合)
但实际上您无法像在Datagrid中那样对项进行自动排序,并且添加CanUserSortColumns ="True"无效!
有一个非常简单的解决方案:
正在将AutoGeneratingColumn事件添加到数据网格
在后面的代码中:
以下是有关此eventHandler Datagrid AutogeneratingColumn event from microsoft doc一些文档