首页 > 解决方案 > WPF填充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>

而不是列表,但输出相同。有人能帮助我吗?

我的员工班

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>

但输出仍然是这样。: 在此处输入图像描述

标签: c#wpfdatagrid

解决方案


只需将ItemsSource您的属性设置DataGrid为项目列表即可。

以下对我来说很好......

数据项.cs

public class DataItem
{
    public DataItem(int id, string description)
    {
        Id = id;
        Description = description;
    }

    public int Id { get; }
    public string Description { get; }
}

主窗口.xaml

<DataGrid Margin="16"
              x:Name="TheDataGrid" />

主窗口.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        DataItems = new ObservableCollection<DataItem>();
        TheDataGrid.ItemsSource = DataItems;
        LoadDataItems();
    }

    public ObservableCollection<DataItem> DataItems { get; }

    private void LoadDataItems()
    {
        DataItems.Add(new DataItem(1,"One"));
        DataItems.Add(new DataItem(2, "Two"));
        DataItems.Add(new DataItem(3, "Three"));
        DataItems.Add(new DataItem(4, "Four"));
        DataItems.Add(new DataItem(5, "Five"));
    }
}

推荐阅读