0 c# data-binding wpf xaml datagrid
我是WPF和c#的新手,并且有一个(可能很简单)问题.
我正在编写一个小应用程序,我正在尝试从数据库中读取数据,将其格式化为列表,并在数据网格中显示.我调试了它,它已成功读取数据库,所有数据都在list(cd_list)中,但它没有将数据传递给datagrid.
以下是我的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>
Run Code Online (Sandbox Code Playgroud)
我的代码隐藏文件InitializeComponent,然后做一些工作从数据库获取数据,并将其放在call_detail对象列表中:
public class call_details
{
public string name;
public string details;
public string employee;
public string date;
public call_details()
{
}
}
Run Code Online (Sandbox Code Playgroud)
声明列表和调用详细信息对象
public call_details cd_rec = new call_details();
public List<call_details> cd_list = new List<call_details>();
Run Code Online (Sandbox Code Playgroud)
将记录添加到列表中
cd_list.Add(cd_rec);
Run Code Online (Sandbox Code Playgroud)
完成此操作后,我尝试提供ItemsSource,以便数据将显示在Datagrid中,并具有以下内容:
DataGrid.ItemsSource = cd_list;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.在GUI中,Datagrid显示一个网格,具有我期望的正确记录数,但它们都是空白的.所以我猜它传递了一些信息,而不是实际的数据.这可能是一个愚蠢的错误,因为我是一个新手,但我找不到任何其他东西来帮助我.
任何人?
所有这些字段都需要作为公共属性公开,至少有一个getter(这是绑定系统的要求).然后,您需要绑定到属性或只使用自动生成的列.
public string Name { get; private set; }
Run Code Online (Sandbox Code Playgroud)
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
Run Code Online (Sandbox Code Playgroud)
如果您是WPF的新手,我强烈建议您阅读MSDN上的一些文章.例如数据绑定概述.
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |