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.