如何读取Datagrid的选定行中的第一个单元格中的值?

时间:2011-01-30 15:07:32

标签: c# wpf datagrid

我有一个datagrid,它包含来自两个名为ITEMS和ORDER_ITEMS的不同表的数据。 datagrid的格式是这样的 - 商品ID |商品名称|单价|数量|量

此处,列ItemID,ItemName,Price属于表ITEMS,列数量和金额(金额=价格*数量)属于表ORDER_ITEMS。

所以我在创建所选行作为ITEMS类型的新对象(或实例)以捕获ItemID时遇到了一些问题。如何读取“选定”行的ItemID属性?


更新: 当我尝试使用以下代码时(根据John K.给出的语法),我收到错误 - 错误1'Microsoft.Windows.Controls.DataGrid'不包含'SelectedRows'的定义,也没有扩展名可以找到方法'SelectedRows'接受类型'Microsoft.Windows.Controls.DataGrid'的第一个参数(您是否缺少using指令或程序集引用?)

     string id = selectedItemsGrid.SelectedRows[0].Cells[0].Text;

我找到了一些关于这个问题的信息。刚刚在Microsoft Library中找到它位于命名空间System.Windows.Forms.dll中。但我现在正在使用Windows Presentation Foundation。你认为这与我目前面临的问题有关吗?

2 个答案:

答案 0 :(得分:1)

假设ItemId位于datagrid的第一个(0)列中...... Selected行将返回一个数组,因此如果只选择了1行,则第一个(0)元素将包含该行...

尝试:

string  strVal =  DataGridView1.SelectedRows[0].Cells[0].Text;

答案 1 :(得分:0)

使用DataGrid.CurrentItem属性。这将为您提供绑定到当前行的数据对象。例如:

class DataClass {
   string ID { get; set; }
   ...
}

...

DataClass current = (DataClass)dataGrid.SelectedItem;
string id = current.ID;