WPF datagrid fila vacía en la parte inferior

202

Ato mi cuadrícula de datos usando

//fill datagrid
public DataTable GameData
{
    get
    {
        DataSet ds = new DataSet();
        FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath,
        FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs, Encoding.Default);
        ds.ReadXml(reader);
        fs.Close();
        DataTable temp = ds.Tables[0];
        return ds.Tables[0];
     }
 }

Por alguna razón me sale una fila vacía en la parte inferior. Y a veces, después de hacer clic en algunos botones y casillas de verificación en la cuadrícula, se agregan más filas vacías.

¿Por qué es esto? ¿Y cómo bloqueo esto?

WtFudgE
fuente

Respuestas:

448

Parece que probablemente haya CanUserAddRowsestablecido en verdadero para DataGrid. Solo agrega

CanUserAddRows="false"

a la XAML.

Tomi Junnila
fuente
13
tenga en cuenta que incluso si la casilla de verificación en las propiedades de la cuadrícula no está marcada, debe agregar explícitamente esa línea de código para ocultar la fila adicional (o marcar y desmarcar la casilla de verificación)
Tobias Valinski
66
Si no desea código detrás, agregue el atributo CanUserAddRows = "False". Parece un error en WPF que tiene que configurarlo como falso explícitamente.
ZZZ
Prefiero tener el problema opuesto. No crea una fila vacía, mientras que preferiría eso.
Shimmy Weitzhandler
21

También funciona con el atributo:

IsReadOnly="true"
Arti
fuente
Esto funcionó mejor que CanUserAddRows & CanUserDeleteRows
RDV
3

Si está creando DataGrid sobre la marcha a través del código fuente ...

DataGrid grid = new DataGrid();

grid.CanUserAddRows = false;

//... 
grid.AutoGenerateColumns = false;
grid.Margin = new Thickness(10,20,10,10);
grid.VerticalAlignment = VerticalAlignment.Top;
grid.ItemsSource = //... and so on
Desarrollador web
fuente
0

Aunque el OP preguntaba cómo ELIMINAR la fila vacía, el título no es específico, y este artículo apareció en mi búsqueda al intentar descubrir cómo AGREGAR la fila vacía. Descubrí que, para que aparezca la fila vacía, no solo debe tener CanUserAddRows="True"sino que también ItemsSourcedebe tener un constructor predeterminado public MyClass () { }.

Barra de hierro
fuente