43

我在这里疯了:

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 之后似乎会发生这种情况,但我不确定它是否与它有关。

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

4

3 回答 3

95

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

CanUserAddRows="假"

于 2011-02-21T09:16:47.463 回答
23

我懂了

在 Datagrid XAML 上,放置属性:

IsReadOnly="True"
于 2009-08-26T20:39:32.910 回答
3

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

于 2015-03-27T10:37:09.083 回答