2009-08-26 53 views
35

我在这里得到坚果与此:如何在绑定到ObservableCollection时删除DataGrid的空白行<T>?

ObservableCollection<Employee> list = new ObservableCollection<Employee>(); 
dgEmployees.ItemsSource = list; 

当您调试列表中的变量,它是空的(list.Count = 0),但后来我把它绑定到一个DataGrid(WPFToolkit),它为我一排空白。

在立即窗口中,dgEmployees.Items它显示:

dgEmployees.Items[0] 
{NewItemPlaceholder} 

dgEmployees.Items[0].GetType() 
{Name = "NamedObject" FullName = "MS.Internal.NamedObject"} 
[System.RuntimeType]: {Name = "NamedObject" FullName = "MS.Internal.NamedObject"} 

看来我已经把这个数据网格到一个TabControl后发生的,但我不是确定它与它有关。

有谁知道如何删除这个空行?

+1

你应该接受另一个答案,它比你的 – reggaeguitar 2014-12-11 22:00:35

回答

18

我知道了

上Datagrid的XAML,把属性:在WPF 4.0版本的DataGrid的

IsReadOnly="True" 
72

同样的问题仍然存在,它是由加载新行导致其它会自动显示ObservableCollection ItemsSource。设置IsReadOnly为真它太激进恕我直言。
我解决它通过禁用CanUserAddRows财产,如果你不需要这种行为,但你仍然希望被修饰的细胞:

CanUserAddRows =“假”

+0

更好,除非它是真正只读的,那么看起来过了杀。 – Jon 2011-03-23 12:23:39

+0

谢谢,这个答案帮了我很多,比在我的情况下有一些副作用,我不想要的IsReadOnly。 – Dessus 2013-07-07 03:04:49

+1

我们可以将此标记为答案,因为IsReadOnly确实有副作用,但这不是吗? – Shreyas 2014-12-23 14:47:45

2

CanUserAddRows="False"IsReadOnly="True"两者的结合更好地确保任何额外的不便。

+0

你建议他使用两个重叠的功能,其中任何一个都足够了,实际上'IsReadOnly = true'将会删除其他功能而没有任何增益。 – NappingRabbit 2017-10-24 18:12:38

相关问题