这是我的尝试:
<DataGrid
Grid.Row="0"
AutoGenerateColumns="True"
ItemsSource="{Binding Path = Workers}"
Grid.ColumnSpan="1"
Name="DataGrid">
</DataGrid>
private Worker[] workers;
public Worker[] Workers
{
get
{
if (IsInDesignMode) return null;
return serviceAgent.ParseFile("dataWorkers.xml").ToArray() ;
}
set
{
workers = value;
NotifyPropertyChanged(m => m.Workers);
}
}
但我的DataGrid仍然是空的。我做错了什么?
答案 0 :(得分:1)
尝试将DataSet或DataTable用作ItemsSource。或者改用ListBox。
此外,您可以尝试另一种做法: http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.itemssource(VS.95).aspx#Y428
它对我有用。
答案 1 :(得分:1)
像我所宣传的那样工作。以下结果为我自动填充可编辑的可排序网格。所以首先从伪造worker数组开始,如下所示,看它是否有效。 如果是,请调查您的ParseFile方法。如果没有,请查看您是否正确设置了数据绑定 - 首先将假数组放入视图中。
=
<StackPanel>
<DataGrid AutoGenerateColumns="True"
ItemsSource="{Binding Path = Workers}"
x:Name="DataGrid"/>
=
public class Worker {
public int Id { get; set; }
public string Name { get; set; }
}
public class MainViewModel
{
public Worker[] Workers {
get {
return new[]{
new Worker {Id = 1, Name = "Cristiano"},
new Worker {Id = 2, Name = "Lionel"},
new Worker {Id = 3, Name = "Xavi"}
};
}
} ....