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




