Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove DataGrid's blank row when binding to a ObservableCollection<T>?

I'm getting nuts here with this:

ObservableCollection<Employee> list = new ObservableCollection<Employee>(); dgEmployees.ItemsSource = list; 

When you debug the list variable, it's empty (list.Count =0), but then I bind it to a DataGrid (WPFToolkit), it shows me a blank row.

In immediate window, for dgEmployees.Items it's showing:

dgEmployees.Items[0] {NewItemPlaceholder} 

and

dgEmployees.Items[0].GetType() {Name = "NamedObject" FullName = "MS.Internal.NamedObject"} [System.RuntimeType]: {Name = "NamedObject" FullName = "MS.Internal.NamedObject"} 

It seems to happen after I've put this Datagrid into a TabControl, but I'm not sure it has something to do with it.

Does anyone know how to remove this blank row?

like image 383
Junior Mayhé Avatar asked Aug 26 '09 20:08

Junior Mayhé


1 Answers

The same problem persist in WPF 4.0 version of DataGrid, and it is caused by the add-new row which it shows automatically for ObservableCollection ItemsSource. Setting IsReadOnly as True it's too radical IMHO.
I solved it by disabling CanUserAddRows property if you don't need that behavior, but you still want cells to be modified:

CanUserAddRows="False"

like image 108
Pablonete Avatar answered Sep 21 '22 14:09

Pablonete