2009-12-11 13 views
1

Je travaille sur une application Silverlight métier et j'ai besoin d'un conseil concernant la gestion de la durée de vie des services RIA.Gestion du contexte silverlight RIA services

L'application - après quelques simplifications - est la construction d'un grand contrôle de tabulation. Au début, il y a 2 onglets: liste des clients et liste des factures. Ce sont des datagrids simples avec filtrage/tri et ce genre de choses. L'utilisateur peut ajouter/modifier un client ou une facture en sélectionnant une ligne et en double-cliquant. Ensuite, le nouvel onglet est créé avec les détails du client ou de la facture. L'utilisateur peut ouvrir plusieurs onglets avec différents clients/factures. Après l'édition, l'utilisateur peut enregistrer et fermer l'onglet ou simplement abandonner éditer et fermer.

La question est de savoir comment gérer les contextes de données.

Dois-je en créer un pour la liste des clients et un pour la liste de factures et lorsque l'utilisateur ouvre un nouvel onglet, je lie simplement client/invoive dataobject pour le contrôler? Cela a l'avantage de ne pas avoir besoin de rafraîchir les grilles après l'enregistrement des modifications. EDIT: Cela a quelques inconvénients. L'utilisateur peut actualiser la grille - et qu'adviendra-t-il des onglets de détail ouverts? L'utilisateur peut également filtrer la grille afin que certains enregistrements en cours de modification puissent être supprimés de datactx?

L'autre façon est de créer un datacontext par tabitem. C'est plus sûr, mais j'ai besoin de gérer une (des) grille (s) rafraîchissante (s).

Je n'ai aucune idée quelle méthode est meilleure ou peut-être il y a une autre alternative?

Répondre

0

Utilisez une liste ObservableCollection dans chaque cas et mettra automatiquement à jour les DataGrid lorsque des éléments sont modifiés.

+0

Oui, j'utilise ObservableCollection et INotifiyChange. Ensuite, ma grille est automatiquement actualisée lorsque l'utilisateur modifie les détails sur un onglet distinct. Ma question était de savoir s'il est sûr d'utiliser un datacontext pour toute l'application et les éditions suivantes. – tomo

+0

L'élément principal dans un DataContext est le DataSource qui dans ce cas est votre ObservableCollection. Il est sûr de l'utiliser comme source de données pour plusieurs éléments d'interface utilisateur. Si vous avez également plusieurs threads opérant sur ObservableCollection, vous devrez prendre les précautions habituelles, par exemple vous assurer qu'un seul thread peut le mettre à jour à tout moment. – sipwiz

Questions connexes