Pull-to-refresh(引っ張って更新する)は、指で携帯機器の画面をタッチし、下にドラッグしてから放すことで画面のコンテンツを更新する、タッチ画面ジェスチャです。この機能は、グリッドを最初にロードした後に、それに含まれる項目が変更される可能性がある場合に便利です。
FlexGrid では、AllowRefreshing を true に設定すると共に、C1CursorCollectionView を実装して動的データをシミュレートする新しいクラスを作成することで、PullToRefresh 機能を実現できます。このサンプルでは、グリッドの ItemSource プロパティを MyCollectionView() メソッドに設定し、このメソッドで PageSize と、グリッドに表示する項目数を定義しています。
次の図は、プルダウンジェスチャを使用してページのデータを更新する様子を示しています。
次のコード例は、C# でこのプロパティを設定する方法を示します。この例では、「クイックスタート」セクションで作成した Customer.cs データモデルを使用しています。
QuickStart.cs ファイルに次のコードを追加して、FlexChart コントロールにラインマーカーを表示します。
C# |
コードのコピー
|
---|---|
class QuickStart { public static FlexGrid GetGridControl() { //コントロールのインスタンスを作成し、そのプロパティを設定する FlexGrid grid = new FlexGrid(); grid.ItemsSource = new MyCollectionView(); grid.AllowRefreshing = true; return grid; } } |
C# |
コードのコピー
|
---|---|
public class MyCollectionView : C1CursorCollectionView<Customer> { ObservableCollection<Customer> items; public MyCollectionView() { PageSize = 50; items = Customer.GetCustomerList(300); } public int PageSize { get; set; } protected override async Task<Tuple<string, IReadOnlyList<Customer>>> GetPageAsync(int startingIndex, string pageToken, int? count = null, CancellationToken cancellationToken = default(CancellationToken)) { return await Task.Run(() => { var moreItems = new ObservableCollection<Customer>(items.Skip(startingIndex).Take(PageSize)); return new Tuple<string, IReadOnlyList<Customer>>("Token not used", moreItems); }); } } |