如何在绑定到ObservableCollection <t>?</t>时删除DataGrid的空行

时间:2009-08-26 20:25:44

标签: datagrid observablecollection wpftoolkit

我对此感到疯狂:

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

调试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"}

似乎是在我将这个Datagrid放入TabControl之后发生的,但我不确定它是否与它有关。

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

3 个答案:

答案 0 :(得分:83)

同样的问题在WPF 4.0版本的DataGrid中仍然存在,并且它是由为ObservableCollection ItemsSource自动显示的add-new行引起的。将IsReadOnly设置为True它太激进恕我直言 如果您不需要该行为,我通过禁用CanUserAddRows属性解决了这个问题,但您仍然希望修改单元格:

  

CanUserAddRows = “假”

答案 1 :(得分:19)

我知道了

在Datagrid XAML上,输入属性:

IsReadOnly="True"

答案 2 :(得分:2)

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