2012-01-17 75 views
2

我想弄清楚为什么数据表行为分配列表/数组时,为什么不同。数据表列表/阵列问题

MainDisplay =空的dockpanel。

审案= 2个属性,Id和数据

var dgBills = new DataGrid(); 
dgBills.ItemsSource = new List<ListBillsItem> 
{ 
    new LItem {Id = 5, Data = "Patrik"}, 
    new LItem {Id = 6, Data = "Thomas"} 
}; 
MainDisplay.Children.Add(dgBills); 

类这将产生一个数据网格3行!?帕特里克一行,托马斯一行,最后一行空行。

如果我把它变成这样,那么它只能产生2行(因为它应该)

var dgBills = new DataGrid(); 
dgBills.ItemsSource = new[] 
{ 
    new LItem {Id = 5, Data = "Patrik"}, 
    new LItem {Id = 6, Data = "Thomas"} 
}; 
MainDisplay.Children.Add(dgBills); 

任何人都可以解释为什么它的行为这样的吗?我从数据库获取一个列表,我希望它只显示列表中的记录。

回答

3

这是由于数据网格上的属性CanUserAddRows="True",如果基础集合接受新项目,则显示新项目为空行。把这个属性设置为false,你应该在两种情况下看到相同的结果。

+0

打我吧:) – Rachel 2012-01-17 15:37:25

+0

那么容易。数组无法展开,而列表可以。谢谢! – Patrick 2012-01-17 15:41:14