2009-08-26 22 views
35

estoy recibiendo los frutos secos aquí con esto:Cómo eliminar la fila en blanco de DataGrid cuando se vincula a un ObservableCollection <T>?

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

Al depurar la variable de lista, que está vacío (list.Count = 0), pero luego se unen a una cuadrícula de datos (WPFToolkit), que me muestra una fila en blanco

En la ventana inmediata, por dgEmployees.Items está mostrando:

dgEmployees.Items[0] 
{NewItemPlaceholder} 

y

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

Parece ocurrir después de que me he puesto esta cuadrícula de datos en un TabControl, pero no estoy Seguro que tiene algo que ver con eso.

¿Alguien sabe cómo eliminar esta fila en blanco?

+1

Debe aceptar la otra respuesta, es mejor que la suya – reggaeguitar

Respuesta

18

lo tengo

en la cuadrícula de datos XAML, poner el atributo:

IsReadOnly="True" 
72

El mismo problema persista en WPF versión 4.0 de la cuadrícula de datos, y es causada por la fila complemento nueva cuales se muestra automáticamente para ObservableCollection ItemsSource. Establecer IsReadOnly como True es demasiado radical en mi humilde opinión.
Lo resuelto mediante la desactivación de la propiedad CanUserAddRows si no es necesario que el comportamiento, pero todavía quiero células para ser modificados:

CanUserAddRows = "false"

+0

de acuerdo, a menos que sea realmente de solo lectura, entonces parece que se ha acabado. – Jon

+0

Gracias, esta respuesta me ayudó mucho más que IsReadOnly, que en mi caso tenía algunos efectos secundarios que no quería. – Dessus

+1

¿Podemos marcar esto como la respuesta ya que IsReadOnly tiene efectos secundarios mientras que esto no es así? – Shreyas

2

CanUserAddRows="False" y IsReadOnly="True" combinación de ambos es mejor asegurar cualquier inconveniente adicional.

+0

está sugiriendo que use dos funcionalidades superpuestas donde cualquiera de las dos será suficiente y, de hecho, 'IsReadOnly = true' eliminará otras funciones sin ganancia alguna. – NappingRabbit

Cuestiones relacionadas