我有一个问题。我正在尝试用数据填充datagrid。
<DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="54,74,0,0" VerticalAlignment="Top" Width="347" Height="206" />
我确实从数据库加载数据并将其添加到网格中了吗?
List<Employee> employees= Modules.OleDatabase.loadEmployeesInside();
foreach (var empl in employees)
{
Debug.WriteLine(empl.Person_number);
dataGrid.Items.Add(empl);
}
所有数据都明确定义为正确加载。调试输出:
我确实尝试使用
ObservableCollection<Employee>
也代替list,但是输出相同。有人可以帮我吗?
我的员工班级
public class Employee
{
public int Person_number;
public string Status, Name, Surname;
}
我现在绑定了
<DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="54,74,0,0" VerticalAlignment="Top" Width="347" Height="206">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Person_number" Binding="{Binding Person_number}" />
<DataGridTextColumn Width="*" Header="Status" Binding="{Binding Status}" />
<DataGridTextColumn Width="*" Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Width="*" Header="Surname" Binding="{Binding Surname}" />
</DataGrid.Columns>
</DataGrid>
答案 0 :(得分:0)
只需将ItemsSource
的{{1}}属性设置为项目列表即可。
以下对我来说很好...
DataItem.cs
DataGrid
MainWindow.xaml
public class DataItem
{
public DataItem(int id, string description)
{
Id = id;
Description = description;
}
public int Id { get; }
public string Description { get; }
}
MainWindow.xaml.cs
<DataGrid Margin="16"
x:Name="TheDataGrid" />
答案 1 :(得分:0)
您的Employee类看起来如何?似乎它没有网格可以为其自动生成列的任何属性。
编辑:您应该使用“属性”,而不是像这样的Employee类中的字段:
public class Employee
{
public int Person_number { get; set; }
public string Status { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
}