Le problème est que la ligne vide dans le DataGrid n'apparaît pas, ergo utilisateur ne peut pas ajouter de données. Voici le code:WPF DataGrid - ligne pour nouvelle entrée non visible
System.Collections.ObjectModel.ObservableCollection<CoreVocabularyEntry> dataList = new System.Collections.ObjectModel.ObservableCollection<CoreVocabularyEntry>();
public VocabularyToolWindow()
{
InitializeComponent();
dataList.Add(new CoreVocabularyEntry { Foreign = "ja", Native = "ano" });
ListCollectionView view = new ListCollectionView(dataList);
WordsDataGrid.ItemsSource = dataList;
WordsDataGrid.CanUserAddRows = true;
MessageBox.Show(view.CanAddNew.ToString());
}
Je ne peux pas comprendre pourquoi view.CanAddNew est false. Cela ressemble à un joli scénario, donc il y a probablement quelque chose qui me manque. Quelqu'un peut-il me dire ce qui ne va pas avec le code? CoreVocabularyEntry est juste ce qui suit:
public struct CoreVocabularyEntry : IVocabularyEntry
{
#region IVocabularyEntry Members
public string Foreign
{
get;
set;
}
public string Native
{
get;
set;
}
#endregion
}
Thx, J.K.
Essayé, ne fonctionne pas :-(. Je pense que le problème est la collection plutôt que dans le DataGrid lui-même. (J'essaie la liste avec le même résultat –
Oups, résolu le mauvais bug! .CanAddNew avant de le définir comme itemsource Quelque chose à propos de l'accès avant de l'associer à un DataGrid a corrigé ce problème pour moi – gn22
Vous pouvez simplement utiliser une variable dummy comme (bool dummy = view.CanAddNew) – gn22