C# Devexpress:将选定的行投射到自定义对象
C# Devexpress: Cast selected row to custom object
在我的网格中,我有一个来自 SQL 数据库(带有 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()
的空引用异常,即使我选择了一行。
我的错误在哪里?
根据文档,GetFocusedRow 方法的 return 值取决于网格数据源的类型。如果数据源是 System.Data.DataTable
或 System.Data.DataView
,此方法 return 是一个 System.Data.DataRowView
表示焦点行的对象。如果数据源是项目的自定义列表,则相应的列表项是 returned.
据我所知,您正在使用 DataTable
作为网格的数据源。如果是这样,您应该将 DataTable 更改为 one of the multiple object's data sources for DevExpress Grid 或使用 DataRow
作为表单互操作中的数据传输单元。
在我的网格中,我有一个来自 SQL 数据库(带有 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()
的空引用异常,即使我选择了一行。
我的错误在哪里?
根据文档,GetFocusedRow 方法的 return 值取决于网格数据源的类型。如果数据源是 System.Data.DataTable
或 System.Data.DataView
,此方法 return 是一个 System.Data.DataRowView
表示焦点行的对象。如果数据源是项目的自定义列表,则相应的列表项是 returned.
据我所知,您正在使用 DataTable
作为网格的数据源。如果是这样,您应该将 DataTable 更改为 one of the multiple object's data sources for DevExpress Grid 或使用 DataRow
作为表单互操作中的数据传输单元。