如何使用匿名类型的数据源对datagridview进行CRUD

本文关键字:datagridview 进行 CRUD 数据源 何使用 类型 | 更新日期: 2023-09-27 18:24:14

我有一个数据网格视图。我使用linq-to-entity从数据库中获取数据,并将linq返回的列表分配给datagridview的datasource属性。

private void ucRecipe_Load(object sender, EventArgs e)
{
      var v2 = (from malzeme in bshEntity.Malzemeler select new { malzeme.ID, malzeme.Kod, malzeme.Ad, malzeme.Tip}).ToList();
      dgvMaterial.DataSource = v2;
}

我想对分配给dgvMaterial.Datasource的列表进行一些CRUD操作,然后刷新dgvMaterial。但我无法从其他方法(如按钮点击事件)访问列表(v2)。如何从其他方法访问该匿名类型?

如何使用匿名类型的数据源对datagridview进行CRUD

您没有指定要使用的C#版本,所以我用dynamic给您一个答案。

我将匿名类型转换为动态类型,对每一行进行迭代,然后访问类似属性的字段值。这是假设您知道匿名类型中的属性名称。

this.dgvMaterial.ItemsSource = v2.ToList();
for (int i = 0; i < dgvMaterial.Items.Count; i++)
{
    var row = dgvMaterial.Items[i] as dynamic;
    var fieldOne = row.FieldOne;
    var fieldTwo = row.FieldTwo;
}

我希望这对你有用。