private void gridControl1_Click(object sender, EventArgs e)
{
int rowHandle = gridView1.FocusedRowHandle;
object myColumnValue = gridView1.GetRowCellValue(rowHandle, "PName Lastname");
}
我使用dbml作为数据源,xtragridview作为gridview。 我的问题是我无法在gridview的运行设计器列标签中看到colums。所以,当我想在代码中使用列名时,我要编写在运行时在gridview上显示的列名。但他们似乎并非如此。我不熟悉使用LINQ。 GetDataRow()GetRow()等返回null。如何从gridview获取点击/聚焦的行数据?
答案 0 :(得分:1)
首先:DevExpress拥有非常出色的帮助,他们通常会快速回答这些问题。
无论如何,这里是如何运作的:
首先不要使用Click功能,因为它会触发任何Click to the Component,
但是你只想点击一个单元格来获得价值(RowClick
或RowCellClick
)。
在示例中,我实际上等待双击(e.Clicks == 2)
注意" DataEntry"是绑定到DataSource
时使用的Type在我的示例中,它是这样的gridControlData.DataSource = source
来源的类型为List<DataEntry>
。
如果您不确定使用的是什么类型,请使用&#34;对象&#34;相反,然后使用Debug.Print(obj.GetType());
一旦你拥有你的对象(在你的情况下它可能是一个DataRow),那么你可以相应地使用该对象。
private void gridViewData_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
if (e.Clicks == 2)
{
DataEntry entry = gridViewData.GetRow(e.RowHandle) as DataEntry;
if (entry != null)
{
Debug.Print(entry.Number);
}
}
}
Addiditional note:字幕(列的名称)由DevExpress自动更改,因此例如Fieldname为&#34; Number_Children&#34;可能会出现在&#34; Number Children&#34;自动。