Login Register
domenica 20 maggio 2012
 
Forums

I Forum di WPF Tips & Tricks
Aggiornare datagrid dopo inserimento
Last Post 10 feb 2012 05:36 by Vincenzo. 2 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages
Vincenzo
Basic Member
Basic Member
Posts:17
Avatar

--
06 feb 2012 08:34  
Salve a tutti,
Vi espongo il mio problema:
ho una datagrid che visualizza i dati di una tabella chiamata Account.
L'accesso alla tabella avviene tramite Entity Framework , tutto funziona,
tranne quando aggiungo un nuovo item , nel senso che dopo aver aggiunto e
dopo aver applicato savechanges() la griglia non si aggiorna, praticamente
non mi visualizza il nuovo record. Per visualizzarlo devo riaprire il form,
oppure devo riassociare datagrid.itemsource con l'Entity data model.
Non trovo il modo per aggiornare la griglia dopo l'inserimento, cosa che invece
avviene quando elimino un elemento.


Account Elemento = new Account
{
UserName = "Nuovo Account",
Ruolo = "Utente",
};
Db.Accounts.AddObject(Elemento);
Db.SaveChanges();

Saluti Vincenzo
Roberto Sarati
Veteran Member
Veteran Member
Posts:277
Avatar

--
09 feb 2012 09:13  
Quali azioni svolgi per eliminare un oggetto?

In genere l'ItemSource di una DataGrid è un ObservableCollection. In questo modo elimini gli oggetti o li aggiungi alla collezione e vengono mostrate correttamente nella griglia.
E' molto probabile che le collezioni di EF non implementino l'interfaccia INotifyCollectionChanged e quindi non visualizzi le modifiche.
Quindi:
private ObservableCollection<Account> itemsource = new ObservableCollection(db.Accounts);
griglia.ItemSource = itemsource;
quando fai una Add o una Remove, fai le operazioni sia in itemsource sia sul contesto di EF.
Vincenzo
Basic Member
Basic Member
Posts:17
Avatar

--
10 feb 2012 05:36  
Grazie Roberto,

Praticamente la griglia è associata ad un CollectionViewSource, ho utilizzato il wizard di VS 2010 per creare la griglia.
Per eliminare uso :
Account Elemento = (Account)AccountViewSource.View.CurrentItem;
Db.Accounts.DeleteObject(Elemento);
Db.SaveChanges();

Ho usato ObservableCollection associandolo alla griglia, solo che facendo add mi aggiunge l'elemento alla griglia ma non aggiunge l'elemento all'EF.
In effetti per salvare l'oggetto devo fare:
itemsource.Add(Elemento);
Db.Accounts.AddObject(Elemento); //senza questo non salva
Db.SaveChanges();

Vincenzo




You are not authorized to post a reply.

Active Forums 4.2
  
hd porn
 
© 2009-2011 WPF Tips&Tricks Team - Visual Basic Tips&Tricks Network
 
porno izleporno izle