WPF 应用程序 - 无法在数据网格中显示列表中的数据

本文关键字:数据 应用程序 显示 列表 网格 数据网 WPF | 更新日期: 2023-09-27 17:56:25

我是WPF和c#的新手,有一个(可能很简单的)问题。

正在编写一个小应用程序,我正在尝试从数据库中读取数据,将其格式化为列表,并显示在数据网格中。我调试了它,它我已经成功读取了数据库,所有数据都在列表中(cd_list),但它没有将数据传递到数据网格。

下面是我的 XAML

<DataGrid Name="DataGrid" AutoGenerateColumns="false" RowHeaderWidth="0" Width="240" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" ></DataGridTextColumn>
                <DataGridTextColumn Header="Details"></DataGridTextColumn>
                <DataGridTextColumn Header="Employee"></DataGridTextColumn>
                <DataGridTextColumn Header="Date"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>

我的代码隐藏文件执行InitializeComponent,然后执行一些工作以从数据库获取数据,并将其放入call_detail对象列表中:

public class call_details
{
    public string name;
    public string details;
    public string employee;
    public string date;
    public call_details()
    {
    }
}

声明列表和调用详细信息对象

   public call_details cd_rec = new call_details();
   public List<call_details> cd_list = new List<call_details>();

将记录添加到列表

   cd_list.Add(cd_rec);           

完成此操作后,我正在尝试提供 ItemsSource,以便数据将显示在数据网格中,并具有以下内容:

DataGrid.ItemsSource = cd_list;

但它不起作用。在 GUI 中,数据网格显示一个网格,其中包含我期望的正确记录数,但它们都是空白的。所以我想它传递了一些信息,而不是实际数据。这可能是我作为一个新手而犯的一个愚蠢的错误,但我找不到其他任何东西可以帮助我。

任何人?

WPF 应用程序 - 无法在数据网格中显示列表中的数据

所有这些字段都需要作为至少一个getter的公共属性公开(这是绑定系统的要求)。然后,您需要绑定到属性或仅使用自动生成的列。

public string Name { get; private set; }
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />

如果您不熟悉 WPF,我强烈建议您阅读 MSDN 上的一些文章,例如数据绑定概述。