2008-12-21 5 views
1

J'ai reçu une DataGrid dans Silverlight. Je voudraisMettre à jour la Datagrid Silverlight après la réponse du serveur

  • le DataGrid (ou UserControl qui contient la grille de données) pour afficher au serveur lorsque l'utilisateur de modifier une cellule dans le ceindre.

  • Pour signaler à la grille de données l'utilisation d'un symbole dans la cellule éditée (comme un symbole de chargement) qu'un message est envoyé au serveur et que le contrôle attend une réponse.

  • pour signaler à la grille de données en utilisant les couleurs (dans la cellule correcte) si la mise à jour a réussi.

J'ai compris que je peux utiliser la classe WebClient pour faire un appel au serveur dans les objets (~ cellules) set-propriété, mais il se sent comme je fais quelque chose de fondamentalement mauvais alors depuis:

  • Je ne sais pas dans le jeu-propriété de l'objet qui a déclenché l'ensemble DataGrid-propriété

  • et que je ne sais pas que je ne serai pas en mesure de comprendre ce qui DataGrid (et quelle cellule dans le DataGrid) pour renvoyer la réponse à (c'est-à-dire si le post a été un succès ou échec).

J'ai aussi essayé d'observer certains événements dans le DataGrid (BeginningEdit, PreparingCellForEdit, SelectionChanged, CurrentCellChanged), mais aucun d'eux ne me donner la nouvelle valeur de la cellule en cours d'édition.

Quelqu'un peut-il me diriger dans la bonne direction sur la façon de résoudre ces problèmes?

Répondre

2

utilisez DataBinding. Liez une collection de type ObservableCollection (où T est votre type d'objet) et lorsque vous revenez de l'appel client Web, remplissez cette collection. Depuis son observable, la grille de données verra les nouvelles données.