首页 文章

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

提问于
浏览
0

我有一个datagrid,它包含来自两个名为ITEMS和ORDER_ITEMS的不同表的数据 . datagrid的格式是这样的 - Item ID | Item Name | Unit Price | Quantity | Amount

这里,列ItemID,ItemName,Price属于表ITEMS,列数量和金额(金额=价格*数量)属于表ORDER_ITEMS .

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


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

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

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

2 回答

  • 1

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

    class DataClass {
       string ID { get; set; }
       ...
    }
    
    ...
    
    DataClass current = (DataClass)dataGrid.SelectedItem;
    string id = current.ID;
    
  • 0

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

    尝试:

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

相关问题