Err*_*tor 0 c# wpf datagrid xml-serialization
我在填写DataGrid数据时遇到问题.这是我的代码,用于反序列化XML file并将信息放入数组中,然后将其Array放入DataGrid使用ItemsSource方法中.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行程序时,我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"/>
Run Code Online (Sandbox Code Playgroud)
Code behind
public class User
{
public String Name;
public int Score;
public User()
{
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于你的User班级.
要在dataGrid中自动生成列,您应该具有properties底层的ItemsSource类和not fields.Binding来自XAML仅适用于属性而非字段.
制作Name和Score作为属性然后它应该工作 -
public class User
{
public String Name { get; set; }
public int Score { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |