【问题标题】:WPF Datagrid not displaying itemSource dataWPF Datagrid 不显示 itemSource 数据
【发布时间】:2019-07-24 05:55:59
【问题描述】:

我将一个列表作为数据网格的项目源传递,但数据网格没有在界面中显示任何数据。帮助我,我是 wpf 的新手。我尝试了很多次,但没有正确得到输出结果。

public partial class Home : Window
{
    List<Member> members = new List<Member>();
    public Home()
    {
        InitializeComponent();
        LoadData();

        memberGrid.ItemsSource = members;
    }
    void LoadData()
    {
        Member member = new Member()
        {
            id = 1,name="raj",dob="monday",mobileno="27487228"
        };
        members.Add(member);
    }
}
public class Member
{
    public  int id;
    public   string name;
    public  string dob;
    public string mobileno;
}

【问题讨论】:

    标签: c# .net wpf list datagrid


    【解决方案1】:

    你好,请将属性设置为 getter setter 类问题

    DataGrid 仅为属性自动生成列,因为每列都会创建一个绑定,而 WPF 绑定需要属性。 DisplayTable 类声明字段。

    而不是

    公共 int id;

    试试这个

    public class Member
    {
        public int id { get; set; }
        public string name { get; set; }
        public string dob { get; set; }
        public string mobileno { get; set; }
    }
    

    【讨论】:

    • 这不是解决问题的完整答案。由于他在将项目分配给ItemsSource 之后 将项目添加到源集合,因此集合members 必须是ObservableCollection 而不是List。或者分配必须在Member 项目添加到members 集合之后 发生。这个答案不能修复代码,它只是解决方案的一部分。您能否将其添加到您的答案中?
    • 是的,但是类属性有问题..这个类可以在 Observable Collection 中获取。我并不是说不要那样使用 Observable Collection 我是说 -@BionicCode
    • 是的,你完全正确,缺少属性是个问题。但即使通过向Member 添加属性来解决此问题,DataGrid 仍然是空的,因为他正在将项目添加到源集合AFTER,它被分配给ItemsSourceDataGrid无法更新以反映添加的项目。
    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2016-03-15
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多