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
的正确行数,但是行是空的,没有列。lbltest
从arraylist
输出一个字符串来证明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()
{
}
}
问题出在你的User
类。
要在dataGrid中自动生成列,您应该在底层ItemsSource类和not fields
中拥有properties
。Binding
from XAML只适用于属性,不适用于字段。
将Name
和Score
设置为属性,然后它应该可以工作-
public class User
{
public String Name { get; set; }
public int Score { get; set; }
}