2010-07-30 111 views
1

我想了解如何读取我的WPF datagrid单元格的值。WPF Datagrid读取单元格值

沿

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

数据网格线的东西已经在XAML中创建和我以

reportGrid.Items.Add(new cbResultRow() { ... }); 

现在我要回去和阅读细胞填充行数据的数据网格在我的数据网格中的值。

我已经看到了一些从选定的行或单元格读取数据的例子,我没有任何选择(用户不与数据网格交互)。像

foreach(DataGridRow myrow in myDataGrid.Rows) 

我也看到代码但是编译器说,行不DataGrid中的一员。

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

请大家帮忙,

感谢, 意志。

回答

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; 
} 

这只会使列中所有值“ColumnTitle”等于1.要访问一个单细胞会是这个样子。

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

这会在你的DataTable中的第一个单元格设置为1

+0

感谢您的答复,我已经做到了与第一次创建列表(因为没有数据表)建议的方式类似,并绑定数据清单,但我真的想知道是否有方法直接从数据网格访问单元格数据。 – dontpanic 2010-07-30 05:24:31

+0

@dontpanic没有。在将来,您会发现List和DataTable不兼容。我甚至更喜欢List上的ObservableCollection。 – jsmith 2010-07-30 13:21:33

2

这可能帮助别人。

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

祝你好运!

+1

好主意。请注意:只有在最基本的情况下,您的数据源为DataView,DataGrid以相同的顺序显示数据源的所有列,即1对1映射为用过的。 – dotNET 2016-10-18 05:49:00

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相当于

类型:数据网格

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