C#网格视图.如何获取所选项目的值

本文关键字:选项 项目 获取 视图 网格 何获取 | 更新日期: 2023-09-27 17:58:19

我有以下问题。我有一个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的数据库实体)。任何帮助都将不胜感激!

附言:对不起,我的句子太复杂了。

C#网格视图.如何获取所选项目的值

如果你的网格只显示一个字符串,你可以得到这样的GridView值:

string value = Gridview1.SelectedItem as string;

好的)这是交易)我想好了:

private async void RemoveButton_Click(object sender, RoutedEventArgs e)
{
    GridViewItem selection = (GridViewItem)GridView1.SelectedItem;
    string ToBeDeleted = selection.Content.ToString();
    GridView1.Items.Remove(selection);
    SQLiteAsyncConnection conn = new SQLiteAsyncConnection("people");
    var query = conn.Table<Person>().Where(x => x.Name == ToBeDeleted);
    var result = await query.ToListAsync();
    foreach (var item in result)
    {
        await conn.DeleteAsync(item);
    }
    MessageDialog msgDialog = new MessageDialog("Category " + ToBeDeleted + " is deleted");
    msgDialog.ShowAsync();
}