作成日: 2017/09/04 最終更新日: 2017/09/05
文書種別
使用方法
詳細
FlexGridにデータを表示する場合、データソースをItemSoureceプロパティに設定します。
このデータソースをコードで操作する場合は、FlexGridに設定されたデータを操作する以外に、データソースをCollectionViewオブジェクトとして取得して操作する方法があります。
FlexGridのItemSourceプロパティに設定したデータソースを、CollectionViewに設定するとCollectionViewで操作したデータがFlexGridにも反映できます。
以下の例では、サンプルデータをFlexGridに表示した後、ボタンを押下した際にデータが入れ替わります。
以下のサンプルコードは、製品に付属するサンプルプロジェクト「FlexGrid101」を元に作成しています。
サンプルコード
C#
画面を定義したXAMLコード
XAML
CollectionViewはデータ操作コンポーネントです。ソート、フィルタ処理、グループ化などの処理を高速に実行することができます。
Studio for Xamarin > CollectionView
このデータソースをコードで操作する場合は、FlexGridに設定されたデータを操作する以外に、データソースをCollectionViewオブジェクトとして取得して操作する方法があります。
FlexGridのItemSourceプロパティに設定したデータソースを、CollectionViewに設定するとCollectionViewで操作したデータがFlexGridにも反映できます。
以下の例では、サンプルデータをFlexGridに表示した後、ボタンを押下した際にデータが入れ替わります。
以下のサンプルコードは、製品に付属するサンプルプロジェクト「FlexGrid101」を元に作成しています。
サンプルコード
C#
using System;
using Xamarin.Forms;
using C1.CollectionView;
namespace C1_FlexGrid
{
public partial class Page1 : ContentPage
{
// CollectionView を定義
C1CollectionView cv = new C1CollectionView();
public Page1()
{
InitializeComponent();
// グリッドのデータソースに設定
var data = Customer.GetCustomerList(10);
grid.ItemsSource = data;
// データソースをCollectionViewのオブジェクトに設定
cv = new C1CollectionView(data);
// ボタンに処理を設定
btn1.Clicked += btn1_Clicked;
}
// ボタンの処理
// CollectionViewの特定列のデータをすべて更新
public void btn1_Clicked(object sender, EventArgs e)
{
var idx = 0;
// コレクションの先頭に移動
cv.MoveCurrentToFirst();
// コレクションに含まれるデータ件数分の処理を繰り返す
while (idx < cv.Count)
// コレクションの指定位置に移動
cv.MoveCurrentToPosition(idx);
// 現在位置のデータ項目を変更
// 変更対象は FirstName
Customer currentcustomer = (Customer)cv.CurrentItem;
currentcustomer.FirstName = "変更" + idx.ToString();
idx += 1;
}
}
}
}
画面を定義したXAMLコード
XAML
<?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="C1_FlexGrid.Page1" xmlns:c1="clr-namespace:C1.Xamarin.Forms.Grid;assembly=C1.Xamarin.Forms.Grid"> <ContentPage.Padding> <OnPlatform x:TypeArguments="Thickness" iOS="0, 20, 0, 0" Android="0" WinPhone="0" /> </ContentPage.Padding> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30" /> </Grid.RowDefinitions> <Button x:Name="btn1" Text="データ更新" Grid.Row="0" /> <c1:FlexGrid x:Name="grid" Grid.Row="1" AutoGenerateColumns="False" SelectionMode="Row"> <c1:FlexGrid.Columns> <c1:GridColumn Binding="Id" /> <c1:GridColumn Binding="FirstName" /> <c1:GridColumn Binding="LastName" /> <c1:GridColumn Binding="OrderTotal" Format="n2" /> </c1:FlexGrid.Columns> </c1:FlexGrid> </Grid> </ContentPage>
CollectionViewはデータ操作コンポーネントです。ソート、フィルタ処理、グループ化などの処理を高速に実行することができます。
Studio for Xamarin > CollectionView
旧文書番号
82326