我在这里坚持这个:
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"
两者的结合更好,以确保任何额外的不便。