访问DataGrid中的单元格数据

时间:2014-03-16 23:42:32

标签: c# wpf datagrid cell

似乎是一件非常简单的事情,但所有的研究和我尝试过的所有事情似乎都没有效果。我正在使用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字段中看到了单元格数据。

我真的很感激任何帮助。

杰夫

2 个答案:

答案 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);