【问题标题】:WPF Application - can't display data from a list in a datagridWPF 应用程序 - 无法显示数据网格中列表中的数据
【发布时间】:2011-05-15 21:14:10
【问题描述】:

我是 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 中,并具有以下内容:

DataGrid.ItemsSource = cd_list;

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

有人吗?

【问题讨论】:

  • 请不要重复修改使答案脱离上下文的问题。您可以对代码有什么问题进行注释,但除此之外,通常是答案的工作。

标签: c# wpf xaml data-binding datagrid


【解决方案1】:

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

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

如果您是 WPF 新手,我强烈建议您阅读一些 articles on MSDN。例如Data Binding Overview

【讨论】:

  • 进行了更改,并且正在获取数据,但它的最后一条记录在整个数据网格中重复。现在需要尝试解决这个问题......还有 MSDN,我已经在他们的网站上转了一段时间......擅长解释概念,但不是很好并给出示例
  • 如果您多次获得相同的数据,您可能实际上多次将相同的对象或相同的对象添加到列表中,我从未遇到过 DataGrid 会自行产生重复项的情况。
  • 是的,我在覆盖列表中的所有记录时遇到问题,现在对其进行排序。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多