WPF数据网格给出日期,但行为空

本文关键字:日期 数据 数据网 网格 WPF | 更新日期: 2023-09-27 18:09:22

我有麻烦填写DataGrid与数据。下面是我的代码来反序列化XML file并将信息放入数组中,然后使用ItemsSource方法将Array放入DataGrid中。

public partial class Teacher_Page : Window
{
    List<User> pupils;
    public Teacher_Page()
    {
        InitializeComponent();
        XmlSerializer deserializer = new XmlSerializer(typeof(List<User>));
        TextReader textReader = new StreamReader("../../../Pupils.xml");
        pupils = (List<User>)deserializer.Deserialize(textReader);
        textReader.Close();
        lbtest.Content = pupils[2].Name;
        dataResults.ItemsSource = pupils;
    }
}

然而,当我运行程序时,我的DataGrid填充了arraylist的正确行数,但是行是空的,没有列。lbltestarraylist输出一个字符串来证明arraylist不是空的,这是正确的。AutoGenerateColumns也设置为true

XAML

<DataGrid x:Name="dataResults" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Height="248" Width="610" IsReadOnly="True"/>

Code behind

public class User
{
    public String Name;
    public int Score;
    public User()
    {
    }
}

WPF数据网格给出日期,但行为空

问题出在你的User类。

要在dataGrid中自动生成列,您应该在底层ItemsSource类和not fields中拥有propertiesBinding from XAML只适用于属性,不适用于字段。

NameScore设置为属性,然后它应该可以工作-

public class User
{
    public String Name { get; set; }
    public int Score { get; set; }
}