在 C# 中访问 Datagrid 中的属性

Posted

技术标签:

【中文标题】在 C# 中访问 Datagrid 中的属性【英文标题】:Accessing a property in a Datagrid in C# 【发布时间】:2010-02-14 14:40:49 【问题描述】:

我正在将数据库查询的输出加载到 DataGrid。

myAdapter.Fill(ds,"AllInfo");
dataGridSearchOutput.DataSource = ds.Tables["AllInfo"].DefaultView;

它将用多条记录填充数据网格控件。假设数据记录的主键是“ID”。

现在我想生成报告。为此,我需要选择一个项目并单击“生成报告”按钮或双击记录。然后应该为该 ID 生成报告。

我的问题是我应该如何捕获记录的 ID?换句话说,我需要读取 datagrid 中的选定值。

【问题讨论】:

【参考方案1】:

你可以试试

dataGridView1.CurrentRow.Cells["ID"].Value

看看

DataGridView.CurrentRow Property get the selected row in datagridview

编辑:

也许然后看看使用DataGrid.CurrentRowIndex Property

【讨论】:

【参考方案2】:

这行得通吗?将其放在单击或双击的事件处理程序中...

DataView dv = (DataView)dataGridSearchOutput.DataSource;
DataRow selectedRow = dv.ToTable().Rows[dataGridSearchOutput.CurrentRowIndex];
long id = (long)selectedRow["ID"];

【讨论】:

【参考方案3】:

我认为最简单的方法是将 GridView 属性 DataKeyNames 设置为 ID,然后您可以轻松地使用 ID

int index = dataGridSearchOutput.SelectedIndex;
dataGridSearchOutput.DataKeys[index].Value.ToString()

或者你可以转换它,只要它是对象。

【讨论】:

以上是关于在 C# 中访问 Datagrid 中的属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 中设置 DataGrid 的 DataSource?

访问 WPF DataGrid 组标题的项目

在C# winform 程序里设置 DataGrid 为只读属性。

在 WPF 中访问 DataGrid 的 ScrollView 属性

用字典 <String,MyClass> 在 C# 中填充 WPF DataGrid

C# 代码设置DataGrid列属性