Mat*_*att 7 .net sorting wpfdatagrid
我有一个DataGrid,在XAML中定义了一些排序,如下所示:
<CollectionViewSource x:Key="DefaultSort" Source="{Binding SearchResults}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="ExternalOrgNo" Direction="Ascending"/>
<scm:SortDescription PropertyName="ExternalBranchNumber" Direction="Ascending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Run Code Online (Sandbox Code Playgroud)
排序正确应用于DataGrid,但没有指示网格上的排序.
查看后面代码中的视图,我看到了集合中的SortDescriptions,我尝试刷新视图,但它没有用.
如何让ColumnHeader箭头最初正确反映视图的SortDescription集合的状态?
更新:我找到了答案.我将SortDirection添加到DataGrid中的DataGridTextColumn.这添加了ColumnHeader箭头.
<DataGridTextColumn Header="Ext Firm #" Binding="{Binding ExternalOrgNo}" DisplayIndex="4" SortDirection="Ascending" Visibility="Visible" />
<DataGridTextColumn Header="Ext Branch #" Binding="{Binding ExternalBranchNumber}" DisplayIndex="5" SortDirection="Ascending" Visibility="Visible" />
Run Code Online (Sandbox Code Playgroud)
OP 看起来不像是常客,所以在那之前我将他的解决方案作为答案发布:
将 加入SortDirection到DataGridTextColumn 中DataGrid。这添加了ColumnHeader箭头。
<DataGridTextColumn Header="Ext Firm #"
Binding="{Binding ExternalOrgNo}"
DisplayIndex="4"
SortDirection="Ascending"
Visibility="Visible" />
<DataGridTextColumn Header="Ext Branch #"
Binding="{Binding ExternalBranchNumber}"
DisplayIndex="5"
SortDirection="Ascending"
Visibility="Visible" />
Run Code Online (Sandbox Code Playgroud)