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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在绑定到ObservableCollection时删除DataGrid的空行 ?相关的知识,希望对你有一定的参考价值。

我在这里坚持这个:

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后,但我不确定它与它有什么关系。

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

答案

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

CanUserAddRows = “假”

另一答案

我懂了

在Datagrid XAML上,放置属性:

IsReadOnly="True"
另一答案

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

以上是关于如何在绑定到ObservableCollection时删除DataGrid的空行 ?的主要内容,如果未能解决你的问题,请参考以下文章

如何将listview项绑定绑定到页面的Viewmodel?

Web开发中,如何在GridView每次绑定后将滚动条移动到下方?

如何在 WinForms 中将字典绑定到 ListBox

如何将 DataTable 绑定到 Datagrid

如何将字体大小绑定到可变网格大小

如何在c#中将数据表绑定到datagridview