J'ai un datagrid qui obtient des données telles que ceci: Le problème est - chaque fois qu'un utilisateur tente d'éditer une cellule ou de glisser plusieurs cellules - l'application jette une exception: P > Système.InvalidoperationException a été non géré Pourquoi est-ce? Est-ce à cause de la manière dont les données sont entrées?
Message: 'Editem' n'est pas autorisé pour cette vue. P>
BlockQuote>
Des idées?
Merci! P> p>
6 Réponses :
au lieu d'utiliser un Réponse mise à jour: Essayez d'ajouter vos instances MyData à une liste, puis affectant cette liste à DataGrid.itemsSource p> struct code> Utilisez une classe
code> à la place. p>
J'ai changé la «structure» en «classe», mais elle jette toujours l'exception.
@Amitarios: essayez d'ajouter votre MyData MyData à une liste
datagrid.itemsSource code>
Mettre en place une liste édité la liste mais pas l'objet source. Est-ce que je manque quelque chose?
Si vous utilisez DataGrid DataGridCheckboxColumn, vous devez définir
J'ai eu ce problème lors de l'attribution d'objetsSource à Ienumerable Je l'ai corrigé en convertissant le Je ne sais pas pourquoi utiliser Ienumerable causait cette question, mais ce changement lui a réparé pour moi. P>
Parce que list
ajouter () code> et
supprimer () code>
Convenu Jack Frost.
Cette réponse n'est pas la mienne, juste l'exemple de code de travail suggéré par Anthonywjones.
pour mon cas, renvoie un p> pas un p> datagridName.Columns.Add(new DataGridCheckBoxColumn()
{
Header = column.HeaderText.Trim(),
Binding = new System.Windows.Data.Binding(column.BindingDataName.Trim()) { StringFormat = column.StringFormat != null ? column.StringFormat.Trim().ToString() : "" },
IsReadOnly = column.IsReadOnlyColumn,
Width = new DataGridLength(column.DataGridWidth, DataGridLengthUnitType.Star),
CellStyle = style,
});
J'ai résolu ceci en définissant la source de DataGrid après l'initializececomponent: