ListView文字列だけでなく、オブジェクトにバインドできます。そうすると、アイテムをクリックすると、オブジェクトが返されます。あなたの場合、オブジェクトにバインドできます。これにはandフィールドBowlerがあると想定しています。IDName
public class Bowler
{
public int Id { get; set; }
public string Name { get; set; }
}
XAML で、フィールドListViewをバインドすることを伝える必要がありNameます。これは、アイテムごとに単純なListViewものです。TextBlock
<ListView x:Name="itemListView" ItemsSource="{Binding}"
IsItemClickEnabled="True" ItemClick="itemListView_ItemClick">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
上記ではTextBlock、フィールドが表示されNameます。
アイテムをリストにロードするには、上記のメソッドを次のように変更できます。
// Unrelated, but generally you want to use "async Task"
// in the method signature. "async void" should only be used by
// event handlers, such as a click event.
private async Task getBowlers()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(BOWLERS_DATABASE);
var query = conn.Table<Bowler>();
var result = await query.ToListAsync();
// set page's data context to bowler collection
this.DataContext = result;
}
アイテムをクリックすると、関連するBowlerオブジェクトが返されます。
private void itemListView_ItemClick(object sender, ItemClickEventArgs e)
{
Bowler bowler = (Bowler)e.ClickedItem;
// do something with bowler...
}
詳細: Windows 8 Metro アプリ ListView のバインドと編集