2010-10-19 5 views
0

J'utilise SL4 avec les services WCF RIA. J'ai une source de données de domaine que j'emploie pour remplir une liste. J'ai attaché un menu contextuel attaché aux éléments de liste que je veux déclencher une mise à jour à une valeur de champs dans la base de données. donc je suis en trainsilverlight domain datasource rafraichie seulement après F5

EmployeeDetail employee = (EmployeeDetail)sender; 
if(employee.EmployeeDetails!=null) 
employee.formEmployee.CommitEdit(); 
dsEmployee.SubmitChanges(); 

Ainsi, le code fonctionne ok, je vois la mise à jour dans la base de données, mais la zone de liste n'a pas été rafraîchi. Si j'appuie sur F5 alors je vois le changement dans l'application Silverlight mais que dois-je faire pour actualiser la source de données des listes?

Répondre

1

La question est un peu vague. Si votre listbox est liée à une collection d'objets EmployeeDetail, et qu'ils sont des entités, ils seront entourés d'un IObservableCollection<EmployeeDetail>, ce qui signifie que votre listbox doit être mise à jour chaque fois que votre liste est mise à jour dans le code derrière. Toutefois, si vous avez vraiment besoin de rafraîchir manuellement, je trouve que cela fonctionne:

IObservableCollection<EmployeeDetail> temp = employeeListBox.ItemSource; 
employeeListBox.ItemSource = null; 
employeeListBox.ItemSource = temp; 
0

Si vous souhaitez actualiser manuellement un DomainDataSource, vous pouvez utiliser la méthode Load(). Si vous voulez le faire sur chaque soumission réussie, vous pouvez vous abonner à l'événement SubmittedChanges et appeler immédiatement un chargement.

Questions connexes