如何在绑定到ObservableCollection时删除DataGrid的空行 ?

问题描述 投票:39回答:3

我在这里坚持这个:

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

这似乎发生在我将这个Datagrid放入TabControl后,但我不确定它与它有什么关系。

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

datagrid observablecollection wpftoolkit
3个回答
83
投票

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

CanUserAddRows = “假”


19
投票

我懂了

在Datagrid XAML上,放置属性:

IsReadOnly="True"

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.