2011-07-25 19 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> 

ソートが正しくデータグリッドに印加されるが、の兆候が存在していないのでソーティンググリッド。

コードビューのビューを見ると、コレクション内のSortDescriptionsが表示され、ビューをリフレッシュしようとしましたが機能しませんでした。

最初にビューのSortDescriptionコレクションの状態をColumnHeaderの矢印に正しく反映させるにはどうすればよいですか?

更新:私は答えを見つけました。 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

あなたはそれはあなたが答えとしてそれを投稿ほうが良いですし、受け入れられたとしてマーク答え見つけてきたように(はい、SOに自分で答えることができます!) 将来的にあなたの質問に遭遇誰もがすることができますこの方法は、答えがより簡単に分かります。 –

答えて

2

OPは、私は答えとしての彼のソリューションを投稿するその瞬間まで、そう定期的に訪問者になりたい見ていません:

DataGridDataGridTextColumnSortDirectionを追加します。これで矢印が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