2011-01-30 44 views
0

我有一个数据网格,其中包含来自两个不同的表称为ITEMS和ORDER_ITEMS的数据。 datagrid的格式是这样的 - 商品ID |项目名称|单价|数量|金额如何读取Datagrid的选定行中第一个单元格中的值?

此处,列ItemID,ItemName,Price属于表ITEMS,列Quantity和Amount(amount = price * quantity)属于表ORDER_ITEMS。

所以,我创建选定的行作为ITEMS类型的新对象(或实例)来捕获ItemID时出现问题。我如何阅读'selected'行的ItemID属性?


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

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

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

回答

0

使用DataGrid.CurrentItem属性。这给你的数据绑定到当前行的对象。例如:

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

... 

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

假设项目Id是在数据网格的第一(0)柱...因此,如果仅1列选择第一(0)元素将包含该行的所选行会返回一个数组...

Try:

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

谢谢你的回应。我尝试过这个。但是我在IntelliSense中看不到SelectedRows。如果我自己输入,Visual Studio会给出错误信息 *'Microsoft.Windows.Controls.DataGrid'不包含'SelectedRows'的定义,也没有接受'Microsoft'类型的第一个参数的扩展方法'SelectedRows' .Windows.Controls.DataGrid'可以找到(你是否缺少使用指令或程序集引用?)* PS:我试过做SelectedRow也。它也没有工作。 – 2011-01-31 04:40:49

+0

看起来像是答案是DataGridView,它是一个WinForms控件,而不是您正在使用的WPF DataGrid。 – shf301 2011-01-31 05:27:40

相关问题