You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WPF中DataGrid无法显示列表项问题求助

问题分析与解决方案

嘿,我一眼就瞅出问题所在啦!你遇到的DataGrid无法显示内容的核心原因是:WPF的数据绑定系统默认只支持绑定到属性(Property),而不是字段(Field)。你的DisplayTable类里定义的都是公共字段,不是属性,所以DataGrid没法识别这些数据~

修改后的DisplayTable

把字段改成自动属性就能解决这个问题,代码如下:

public class DisplayTable
{
    public int AnalyteId { get; set; }
    public int UnitCode { get; set; }
    public int ReferenceValue { get; set; }
}

补充绑定注意事项

另外还要确保你的列表初始化和绑定步骤是正确的,完整的按钮点击事件代码可以参考这样:

// 建议把List定义为类的成员变量,避免每次点击都重新创建
private List<DisplayTable> _displayList = new List<DisplayTable>();

private void btnAddAnalyte_Click(object sender, RoutedEventArgs e)
{
    DisplayTable d = new DisplayTable();
    // 记得给属性赋值,比如:
    d.AnalyteId = 1;
    d.UnitCode = 2;
    d.ReferenceValue = 3;
    
    _displayList.Add(d);
    // 将列表绑定到DataGrid
    yourDataGridName.ItemsSource = _displayList;
    // 如果是重复添加后需要刷新显示,可以用:yourDataGridName.Items.Refresh();
}

为什么字段不行?

WPF的数据绑定机制依赖于.NET的属性系统,属性可以包含绑定所需的元数据,还能配合INotifyPropertyChanged接口实现数据更新通知。而字段只是简单的变量,不具备这些绑定必备的特性,所以DataGrid无法识别并展示它们。

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

火山引擎 最新活动