似乎是一件非常简单的事情,但所有的研究和我尝试过的所有事情似乎都没有效果。我正在使用VS2013和.Net 4.5
我有一个2列WPF DataGrid,它没有使用数据绑定。网格已经填充了来自SQLCE表的数据,我想选择一行并以字符串形式返回所选行的第0列单元格中的数据。
我可以看到调试监视窗口中有数据
我只是不知道如何访问该值以便我可以使用它。
private void dgPickList_MouseDoubleClick( object sender, MouseButtonEventArgs e ) { selectItem(); this.Close(); } private void selectItem() { _pickedItem = dgPickList.SelectedItem.ToString(); }
这段代码显然不能很好地工作,但它确实让我在非公共成员_values字段中看到了单元格数据。
我真的很感激任何帮助。
杰夫
答案 0 :(得分:1)
将SelectedItem
投回到您用网格填充网格的原始类型。
例如,如果您使用DataTable
,则转换为DataRow
并抓取第一列(此处我假设它是表示唯一ID的整数类型):
var id = ((DataRow)dgPickList.SelectedItem).Field<int>(0);
如果你正在使用自定义类的集合,那么这样的东西应该有效:
var id = ((MyClass)dgPickList.SelectedItem).Id;
答案 1 :(得分:0)
使用DataGrid.SelectedCells代替。这将返回一组选定的单元格,您可以在其中找到需要阅读的列。
例如:
var celldata=dataGrid1.SelectedCells[0];
var val=celldata.Column.GetCellContent(celldata.Item);