2011-07-25 42 views
7

排序數據網格時,我有與XAML定義像這樣的一些分選數據網格:的columnHeader箭頭不會反映在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

正如你已經找到了答案,最好是你將它張貼作爲一個答案,標記爲接受的(是的,這樣你就可以回答一下吧!) 這樣,任何人誰在未來遇到的問題都更容易注意到它的答案。 –

回答

2

的OP看起來不像是一個普通訪客,直到那一刻,我張貼他的解決方案作爲一個答案:

添加SortDirectionDataGridTextColumnDataGrid。這增加了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" /> 
+0

如果CollectionViewSource的'SortDescriptions'屬性在代碼中設置並且在運行時不同,那麼設置常量'SortDescription =「Ascending」'將會是錯誤的,因爲它不會反映當前的排序。 – Dai