在我的网格中,我有一个来自SQL DB的行列表(带有SELECT * FROM
语句)。
我想做的是让用户专注于一行 - >单击按钮并打开表单并传递行(在整个对象中)。
我尝试了以下操作:
private void btn_Get_Object_Details_Click(object sender, EventArgs e)
{
Person p = gridView.GetFocusedRow() as Person;
MessageBox.Show("name: " + person.Name);
}
然而,即使我选择了一行,我也会得到gridView.GetFocusedRow()
的空引用异常。
我的错误在哪里?
答案 0 :(得分:3)
根据文档,GetFocusedRow方法的返回值取决于Grid的数据源的类型。如果数据源是System.Data.DataTable
或System.Data.DataView
,则此方法返回表示焦点行的System.Data.DataRowView
对象。如果数据源是项目的自定义列表,则返回相应的列表项。
据我所知,您使用DataTable
作为Grid的数据源。如果是这样,您应该将DataTable更改为one of the multiple object's data sources for DevExpress Grid,或者使用DataRow
作为表单互操作中的数据传输单元。