WPF数据网格未排序
我试图让WPF DataGrid在默认情况下按列排序,但它不起作用。没有排序发生。出现排序图标,如果我单击它们,则进行排序 现在我的表只有一列。但它仍然没有默认排序 你知道我遗漏了什么吗WPF数据网格未排序,wpf,wpfdatagrid,Wpf,Wpfdatagrid,我试图让WPF DataGrid在默认情况下按列排序,但它不起作用。没有排序发生。出现排序图标,如果我单击它们,则进行排序 现在我的表只有一列。但它仍然没有默认排序 你知道我遗漏了什么吗 <DataGrid.Columns> <!--Ordinal--> <DataGridTemplateColumn d:DataContext="{d:DesignInstance tabViewModels:ColumnVi
<DataGrid.Columns>
<!--Ordinal-->
<DataGridTemplateColumn d:DataContext="{d:DesignInstance tabViewModels:ColumnViewModel}"
SortMemberPath="Ordinal"
>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Label Content="#" ToolTip="Column Position" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<xctk:DoubleUpDown Value="{Binding Ordinal, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Ordinal}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
一种解决方案是使用LINQ查询将已排序的数据提供给DataGrid。使用如下内容修改项目源的getter:
List<Something> MyItemSource
{
get
{
return _myItemSource.OrderBy(x => x.Ordinal).ToList();
}
}
列出MyItemSource
{
得到
{
return _myItemSource.OrderBy(x=>x.Ordinal.ToList();
}
}
然后它肯定会按顺序排序。尝试将
DataGridTemplateColumn
上的SortDirection
属性设置为“升序”或“降序”。使用这种方法,排序指示器不会显示在列标题中。我希望避免这种情况,并在网格中执行,但我确实认为这是我的最佳选择。谢谢我仍然会将排序保留在列上,只是先对其进行排序