WPF Datagrid读取单元格值

时间:2010-07-30 02:12:54

标签: wpf datagrid

我试图找出如何读取我的WPF datagrid单元格的值。

的内容
String myString = myDataGrid.Cells[1][2].ToString();

已在XAML中创建了datagrid,并使用

在数据网格中填充了行数据
reportGrid.Items.Add(new cbResultRow() { ... });

现在我想回去读取数据网格中的单元格值。

我看过一些从选定行或单元格中读取数据的示例,我没有任何选择(用户不与数据网格交互)。

我也见过像

这样的代码
foreach(DataGridRow myrow in myDataGrid.Rows)

然而编译器说Rows不是datagrid的成员。

我已经搜索了几个小时,试图找出如何做我认为非常简单的事情!

请帮忙,

谢谢, 将

3 个答案:

答案 0 :(得分:2)

WPF数据网格构建为绑定到类似DataTable的东西。大多数情况下,您将修改DataTable以及绑定到DataGrid的DataTable中的行/列。

DataGrid本身是DataTable的可视元素。 Here is a pretty good tutorial on how to do this。修改循环中的数据看起来像这样。

foreach(DataRow row in myTable.Rows)
{
    row["ColumnTitle"] = 1;
}

这只会使Column“ColumnTitle”中的所有值都等于1.要访问单个单元格,它将看起来像这样。

myTable.Rows[0][0] = 1;

这会将DataTable中的第一个单元格设置为1。

答案 1 :(得分:2)

这可能有助于其他人。

foreach (DataRowView row in dgLista.SelectedItems)
{
    string text = row.Row.ItemArray[index].ToString();
}
祝你好运!

答案 2 :(得分:0)

以下是解决方案的摘要。

Winform的

输入:System.windows.Forms.DataGridView

// C#
foreach (DataGridViewRow row in dataGridView1.Rows)
{
  //"Column1" = column name in DataGridView
  string text = row.Cells["Column1"].value.ToString();
}

等效WPF

输入:DataGrid

// C#
foreach (DataRowView row in dataGrid.Items)
{
  string text = row.Row.ItemArray[index].ToString();
}