从单击的单元格中获取 DataRow 值 (RadGridView)
Getting DataRow value from cell clicked (RadGridView)
所以我尝试从我的 RadGridView 中获取行值并像这样使用 SelectionChanged
:
private void dataGrid_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
var a = dataGrid.SelectedItem.ToString();
MessageBox.Show(a);
}
我想如果我点击它我会得到单元格值。但是 a
的输出是 System.Data.DataRow 我点击 table 的所有内容(单元格)。我究竟如何获得 DataRow 值?
编辑:单击任何单元格后如何获取所有行值?
使用select()方法
DataRow[] foundRows = YourDataTable.Select(searchExpression);
您需要将它转换为 DataRow
,然后您可以使用它的方法 f.e。 Field
:
private void dataGrid_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
DataRow row = (DataRow) dataGrid.SelectedItem;
string name = row.Field<string>("Name");
MessageBox.Show(name);
}
这里假定有一列 Name
,但我相信您会理解的。
如果你想输出所有列值(f.e。为了调试目的)你可以使用:
string allValues = String.Join(", ", row.ItemArray);
所以我尝试从我的 RadGridView 中获取行值并像这样使用 SelectionChanged
:
private void dataGrid_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
var a = dataGrid.SelectedItem.ToString();
MessageBox.Show(a);
}
我想如果我点击它我会得到单元格值。但是 a
的输出是 System.Data.DataRow 我点击 table 的所有内容(单元格)。我究竟如何获得 DataRow 值?
编辑:单击任何单元格后如何获取所有行值?
使用select()方法
DataRow[] foundRows = YourDataTable.Select(searchExpression);
您需要将它转换为 DataRow
,然后您可以使用它的方法 f.e。 Field
:
private void dataGrid_SelectionChanged(object sender, SelectionChangeEventArgs e)
{
DataRow row = (DataRow) dataGrid.SelectedItem;
string name = row.Field<string>("Name");
MessageBox.Show(name);
}
这里假定有一列 Name
,但我相信您会理解的。
如果你想输出所有列值(f.e。为了调试目的)你可以使用:
string allValues = String.Join(", ", row.ItemArray);