我对此感到疯狂:
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之后发生的,但我不确定它是否与它有关。
有谁知道如何删除这一空白行?
答案 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"
两者的结合可以更好地确保任何额外的不便。