You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms中Syncfusion DataGrid如何获取用户点击的单元格值

解决方案

直接修改你的SfGrid_CurrentCellActivated事件代码即可实现需求:

private void SfGrid_CurrentCellActivated(object sender, Syncfusion.SfDataGrid.XForms.CurrentCellActivatedEventArgs e)
{
    // 获取当前选中单元格的行、列索引
    int rowIndex = e.RowColumnIndex.RowIndex;
    int columnIndex = e.RowColumnIndex.ColumnIndex;

    // 排除表头行(行索引0为表头,无需处理)
    if (rowIndex < 1) return;

    // 获取当前行绑定的Student实体对象
    var rowData = sfGrid.GetRecordAtRowIndex(rowIndex);
    // 获取当前选中列的绑定字段名
    var currentColumn = sfGrid.Columns[columnIndex];
    string mappingName = currentColumn.MappingName;

    // 读取单元格存储值
    var cellValue = sfGrid.GetCellValue(rowData, mappingName);

    // 按需转换类型使用即可,比如获取TB列的数值可写:decimal tbVal = Convert.ToDecimal(cellValue);
    Console.WriteLine($"选中单元格值:{cellValue},所属列:{mappingName}");
}

补充说明

  • 不需要调用GetSelectedCells方法,该方法适用于多选单元格场景,单单元格选中直接用事件参数携带的行列索引取值即可
  • 即使开启了分组、筛选、排序功能,GetRecordAtRowIndex也可以正确拿到当前视图下的行对应数据源,不需要额外处理行号偏移

内容的提问来源于stack exchange,提问作者dotnetdevcsharp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:39:03