我们如何在数据网格控件中获取按钮单击事件的列值,
在网格中有五列,第五列是按钮控件,第一列是一些 ID 值,
我正在使用
Int32 paperID = Convert.ToInt32(((System.Data.DataRowView)(DataGrid_MarksSummary.SelectedItem)).Row.ItemArray[0].ToString());
这里 paperID 总是为 0,
如何在单击按钮时获取此 id 值。
我们如何在数据网格控件中获取按钮单击事件的列值,
在网格中有五列,第五列是按钮控件,第一列是一些 ID 值,
我正在使用
Int32 paperID = Convert.ToInt32(((System.Data.DataRowView)(DataGrid_MarksSummary.SelectedItem)).Row.ItemArray[0].ToString());
这里 paperID 总是为 0,
如何在单击按钮时获取此 id 值。
假设您的代码中有按钮的单击事件处理程序,您可以遍历此处理程序中的可视化树并找到底层行和您实际需要的数据:
private void ColumnButtonClick(object sender, RoutedEventArgs e)
{
Visual visual = (Visual)sender;
while ((visual = VisualTreeHelper.GetParent(visual) as Visual) != null)
{
if (!(visual is DataGridRow)) continue;
var row = (DataGridRow)visual;
object item = row.Item; //your bound object
break;
}
}
在这种情况下,“item”变量保存 DataGridRow 内的实际数据绑定对象。您可以将其转换为您实际用作数据网格源的对象类型,然后您可以从中获得所需的 PaperID。