在XAML中排序DataGrid时,未反映ColumnHeader箭头

时间:2011-07-25 18:39:47

标签: .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>

排序已正确应用于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" />

1 个答案:

答案 0 :(得分:2)

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" />