2011-06-12 4 views
1

J'ai un DataGrid et le remplir lorsque la fenêtre chargée, comme ceci:Ajouter une nouvelle ligne à DataGrid lors de l'exécution (WPF)

private void Window_Loaded(object sender, RoutedEventArgs e) { 
    var list = DbService.GetStuffsFull(); 
    dataGrid.ItemsSource = list; 
} 

et lorsque je tente d'ajouter une nouvelle ligne à l'exécution par ce Code:

Stuff item = new Stuff(); 
dataGrid.Items.Add(item); 

Je reçois cette erreur:

Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.

comment puis-je ajouter une nouvelle ligne à l'exécution?

Répondre

1

Vous ne pouvez pas modifier des éléments de la collection Items si vous l'avez renseignée sous la forme ItemsSource. Vous devez soit ajouter l'article à votre list (avec

INotifyCollectionChanged mis en œuvre ou vous devez d'abord peuplée Items propriété via la méthode Add La description d'erreur est assez clair, non

+0

Notez que dans la plupart des cas, la meilleure façon d'obtenir 'INotifyCollectionChanged' est d'utiliser' ObservableCollection ;. – svick

0

essayer de faire quelque chose comme ceci:.? ligne var = dataGrid.NewRow();

dataGrid.Rows.Add(row); 
    row["column1"] = "data1"; 
    row["column2"] = "data2"; 
    row["column3"] = "data3"; 

InitializeComponent(); 
+0

-vous proposes vraiment interagir avec '' dataGrid' avant d'appeler InitializeCo mponent'? – Snowbear

Questions connexes