FlexGrid for WPF
ソートを解除する
基本操作 > ソート > ソートを解除する

C1FlexGrid でソートを解除したい場合は、グリッドのソートの記述(SortDescriptions)を消去する方法を紹介します。たとえば、_flex と指定した C1FlexGrid で _flex.CollectionView.SortDescriptions.Clear() 使用して行ったソート処理を無効にできます。

  1. DataTable を作成してグリッドに連結します。
    コードのコピー
    InitializeComponent()
    _flex.ItemsSource = Product.GetProducts(30)
    _flex.CollectionView.SortDescriptions.Add(New System.ComponentModel.SortDescription("Name", System.ComponentModel.ListSortDirection.Descending))
    
    コードのコピー
    InitializeComponent();
    _flex.ItemsSource = Product.GetProducts(30);
    _flex.CollectionView.SortDescriptions.Add(new System.ComponentModel.SortDescription("Name", System.ComponentModel.ListSortDirection.Descending));
    


  2. クリックされたときテーブルのソートを解除するボタンを作成します。次のコードを removeBtn_Click イベントに追加します。


    コードのコピー
    Private Sub removeBtn_Click(sender As Object, e As RoutedEventArgs)
        If _flex.CollectionView.SortDescriptions.Count > 0 Then
            _flex.CollectionView.SortDescriptions.Clear()
        End If
    End Sub
    
    コードのコピー
    private void removeBtn_Click(object sender, RoutedEventArgs e)
    {
        if (_flex.CollectionView.SortDescriptions.Count > 0)
        {
            _flex.CollectionView.SortDescriptions.Clear();
        }
    }
    


    メモ:DataTable.DefaultView は DataTable の DataView を返します。ソート文字列を null に設定すると、DataView は直前のソートを元に戻します。

なお、(列ヘッダに表示されている)ソート方向を示すインジケータのみを消去したい場合は、ShowSort プロパティを False に設定してアイコンを非表示にします。ShowSort プロパティを False に設定した場合は、再度ソートを行ってもアイコンは表示されなくなりますので、注意してください。非連結モードのグリッドでも使用可能です。