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

如何在GridView中显示列表项?输出异常原因及解决方法

异常原因与解决办法

原因

你调用dgvViewsäljare.Rows.Add(säljare)时,直接将整个List<Säljare>集合作为参数传入Rows.Add()方法。该方法会把传入的集合当作单个单元格的内容,最终调用集合的ToString()方法,因此显示出集合的类型全称Systems.Collections.Generic.List[WindowsFormsApp62.form1+Säljare],而非预期的列表项内容。

解决办法

方法一:数据绑定(推荐用于大量数据)

直接将排序后的列表设置为GridView的数据源,WinForms会自动映射对象属性到列(可通过AutoGenerateColumns = true自动生成列,或提前配置好对应列):

// 绑定排序后的列表作为数据源
dgvViewsäljare.DataSource = säljare;

// 如需为行设置Tag,绑定后遍历行处理
foreach (DataGridViewRow row in dgvViewsäljare.Rows)
{
    if (!row.IsNewRow)
    {
        Säljare currentItem = (Säljare)row.DataBoundItem;
        row.Tag = currentItem;
    }
}

方法二:遍历列表逐个添加行

若不使用数据绑定,需遍历集合中的每个对象,将其属性值作为单元格内容添加到GridView:

// 清空现有行(按需执行)
dgvViewsäljare.Rows.Clear();

foreach (Säljare item in säljare)
{
    // 传入对象的属性值创建新行,需与GridView列顺序对应
    int rowIdx = dgvViewsäljare.Rows.Add(item.Nivå, item.姓名, item.业绩);
    // 设置当前行的Tag
    dgvViewsäljare.Rows[rowIdx].Tag = item;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:30:53