Riga vuota datagrid WPF in basso


202

Lego il mio datagrid 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];
     }
 }

Per qualche motivo ho una riga vuota in fondo. E a volte dopo aver fatto clic su alcuni pulsanti e caselle di controllo nella griglia, vengono aggiunte più righe vuote.

Perchè è questo? E come posso bloccare questo?

Risposte:


448

Sembra che tu abbia probabilmente CanUserAddRowsimpostato su true per DataGrid. Basta aggiungere

CanUserAddRows="false"

alla XAML.


13
tieni presente che anche se la casella di controllo nelle proprietà della griglia è deselezionata devi aggiungere esplicitamente quella riga di codice per nascondere la riga aggiuntiva (o selezionare e deselezionare la casella di controllo)
— Tobias Valinski,

6
Se non si desidera il codice dietro, aggiungere l'attributo CanUserAddRows = "False". Sembra un bug in WPF che devi impostarlo su false esplicitamente.
— ZZZ,

Preferisco avere il problema opposto. Non crea una riga vuota, mentre preferirei quella.
— Shimmy Weitzhandler,

21

Funziona anche con l'attributo:

IsReadOnly="true"

Funzionava meglio di CanUserAddRows e CanUserDeleteRows
— RDV


3

Se stai creando DataGrid al volo tramite il codice sorgente ...

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

0

Sebbene l'OP chiedesse come RIMUOVERE la riga vuota, il titolo non è specifico e questo articolo è apparso nella mia ricerca mentre cercavo di capire come AGGIUNGERE la riga vuota. Ho scoperto che, affinché appaia la riga vuota, non solo deve avere, CanUserAddRows="True"ma ItemsSourcedeve avere un costruttore predefinito public MyClass () { }.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.