Xuni コントロール > FlexGrid > 機能 > ソート |
FlexGridコントロールで、次の方法を使用してグリッドのデータをソートすることができます:
以下の画像は、Country列のヘッダをタップし、グリッドに適用されたソート後の FlexGrid を示しています。
C# |
コードのコピー
|
---|---|
grid.AllowSorting = true;
|
XAML |
コードのコピー
|
---|---|
<xuni:FlexGrid AllowSorting="True"> |
次の図は、Name列でソートが適用された後の FlexGrid を示しています。
次のコード例は、C# と XAML で FlexGrid コントロールをソートする方法を示します。この例では、「クイックスタート」セクションで作成したサンプルを使用します。
以下のように FlexGrid、ColletionView および Xamarin 参照を含めます。
|
C# |
コードのコピー
|
---|---|
public static FlexGrid GetGrid() { var dataCollection = Customer.GetCustomerList(10); XuniCollectionView<Customer> cv = new XuniCollectionView<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”; |