【发布时间】:2014-05-27 17:38:13
【问题描述】:
我有以下问题。我有一个 GridView,它是在这段代码的帮助下从我的数据库中填充的:
private async void CreateDatabase()
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection("people");
var query = conn.Table<Person>();
var result = await query.ToListAsync();
foreach (var item in result)
{
GridView1.Items.Add(new GridViewItem { Background = new SolidColorBrush(Colors.Green), Content = item.Name, Width = 200, Height = 200 });
}
}
我像这样从我的数据库中删除项目:
private async void DeleteSelectedButton_Click(object sender, RoutedEventArgs e)
{
SQLiteAsyncConnection conn = new SQLiteAsyncConnection("people");
var query = conn.Table<Person>().Where(x => x.Name == "123");
var result = await query.ToListAsync();
foreach (var item in result)
{
await conn.DeleteAsync(item);
}
}
我的问题是:我可以将什么特定值绑定到在第一个代码块中创建的 GridView1.Item,以便稍后在选择该项目时检索它以删除数据库中的实体? (即 1. 在填充 GridView 时,我希望为每个 GridView.Item 分配一些绑定到我的数据库中的 ID 的值;2. 当我通过右键单击该项目然后按下它来选择该项目时,我希望能够检索该值删除按钮(这样不会删除名称中带有“123”的数据库实体,而是删除 ID 绑定到该项目的实体)。任何帮助将不胜感激!
附:对不起我的复杂句子。
【问题讨论】:
-
为什么不用
Content = item和一个DataTemplate 来代替?
标签: c# gridview windows-8.1