WPF填充DataGrid

时间:2018-11-27 12:27:18

标签: c# wpf datagrid

我有一个问题。我正在尝试用数据填充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);
            }

但是我只是在网格中得到以下输出:enter image description here

所有数据都明确定义为正确加载。调试输出:

enter image description here

我确实尝试使用

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>

,但输出仍然是这样: enter image description here

2 个答案:

答案 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; }
    }