Je lie ma grille de données en utilisant
//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];
}
}
Pour une raison quelconque, je reçois une ligne vide en bas. Et parfois, après avoir cliqué sur des boutons et des cases à cocher dans la grille, davantage de lignes vides sont ajoutées.
Pourquoi est-ce? Et comment puis-je bloquer cela?
On dirait que vous avez probablement CanUserAddRows
défini sur true pour le DataGrid. Il suffit d'ajouter
CanUserAddRows="false"
au XAML.
Cela fonctionne aussi avec l'attribut:
IsReadOnly="true"
Si votre collection de sauvegarde qui implémente IEditableCollectionView
renvoie true à partir de sa méthode CanAddNew
, le DataGrid supposera que c'est ce que vous voulez faire.
Voici un bon aperçu: Aperçu des fonctionnalités d’édition du WPF DataGrid
Si vous créez DataGrid à la volée via le code source ...
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