トルネード

毛利のメモ書き

UWP 入門 - GridView

GridView アイテム追加

簡単なクラスを作成し、GridView のアイテム登録する方法です。

XAMLデザイン画面で下記のようにGridView を追加します。

<GridView Name="gv1" Background="DarkCyan">
    <GridView.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Width="250">
            <TextBlock Text="{Binding Name}" Width="80" Margin="5,0,0,0" VerticalAlignment="Center" ></TextBlock>
            <TextBox Text="{Binding Dt}" VerticalAlignment="Center"></TextBox>
            </StackPanel>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

GridView.ItemTemplateでアイテムのデザインをDataTemplateを使って登録します。 この例では、TextBlockTextBoxをアイテムに配置しています。この2つのTextプロパティには{Binding}を指定しています。

C#側でバインディング用のクラスを作成する

C#側でTItemというクラスを作成しました。

public class TItem
{
    string FName;
    DateTime Fdt;
    public string Name { get { return FName; } set { FName = value; } }
    public DateTime Dt { get { return Fdt; } set { Fdt = value; } }
    public TItem(string n, DateTime d)
    {
        FName = n;
        Fdt = d;
    }
    
}

バインディング用クラスをアイテムに登録する。

作成したTItemクラスをアイテム登録で使います。画面のLoadedイベントを作成し GridViewへアイテムを追加します。

Task.Run(async () => {
    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, ()=>
    {
        for (int i = 0; i < 100; ++i)
        {
            gv1.Items.Add(new TItem(string.Format("Name = {0}", i),  DateTime.Now + (new System.TimeSpan(0, 0, 0, i))));
            
        }
    });
});

f:id:mojeld:20180731202723g:plain