Xamarin.Forms のドキュメント
ソート
コントロール > FlexGrid > 機能 > ソート

FlexGridコントロールで、次の方法を使用してグリッドのデータをソートすることができます:

実行時のソート

 以下の画像は、Country列のヘッダをタップし、グリッドに適用されたソート後の FlexGrid を示しています。

C# のコード

C#
コードのコピー
grid.AllowSorting = true;

XAML のコード

XAML
コードのコピー
<c1:FlexGrid AllowSorting="True">

コードの場合

次の図は、Name列でソートが適用された後の FlexGrid を示しています。

次のコード例は、C# と XAML で FlexGrid コントロールをソートする方法を示します。この例では、「クイックスタート」セクションで作成したサンプルを使用します。

以下のように FlexGrid、ColletionView および Xamarin 参照を含めます。
using Xamarin.Forms;
using C1.CollectionView;
using C1.Xamarin.Forms.Grid;

C# のコード

C#
コードのコピー
public static FlexGrid GetGrid()
       {        
         var dataCollection = Customer.GetCustomerList(10);
         C1CollectionView<Customer> cv = new C1CollectionView<Customer>(dataCollection);
         var sort = cv.SortDescriptions.FirstOrDefault(sd => sd.SortPath == "Name");
         var direction = sort != null ? sort.Direction : SortDirection.Descending;
         cv.SortAsync(x => x.Name, direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending);
         FlexGrid _grid = new FlexGrid();
         _grid.ItemsSource = cv;
         _grid.VerticalOptions = LayoutOptions.FillAndExpand;
         return _grid;
         cv.SortChanged += cv_SortChanged;
        }
     static void cv_SortChanged(object sender, EventArgs e)
      {
        throw new NotImplementedException();
      }

別のフィールドを基準にして列をソート

デフォルトでは、ソートは連結フィールドに適用されます。ただし、別のフィールドを基準にして列をソートすることもできます。それには、SortMemberPath  プロパティをグリッドのソート基準にする列に設定するだけです。たとえば、次の列は「FullName」に連結されていますが、「LastName」を基準にしてソートされます。

C#
コードのコピー
column.Binding = “FullName”;
column.SortMemberPath = “LastName”;