2009-01-19 7 views
1

J'essaie d'écrire un contrôle utilisateur assez simple dans Silverlight 2 qui permet à l'utilisateur de rechercher des adresses existantes, éventuellement mettre à jour l'adresse sélectionnée, et ajouter de nouvelles adresses. Pour ce faire, j'ai mis en place un simple service WCF qui permet une interrogation simple et je suis en train de le câbler jusqu'à une combinaison de zone de texte, bientôt remplacée par l'AutoCompleteBox de Silverlight Toolkit.Comment utilisez-vous la liaison bidirectionnelle si l'instance liée n'implémente pas INotifyPropertyChanged dans Silverlight 2?

Mon problème est plus de compréhension, le type de retour de mon service est de type IList <Adresse> et adresse n'implémente pas INotifyPropertyChanged et il ne semble pas approprié pour les objets retournés par le service (qui peut également être appelé par d'autres clients) pour que la fonctionnalité spécifique à SL2 soit intégrée. Quelle est la meilleure approche à utiliser pour faciliter la liaison bidirectionnelle pour modifier les adresses existantes.

idée de base suit ainsi:

  1. utilisateur entre des informations dans
  2. textbox service appelé pour récupérer des adresses correspondant à IList <Adresse> qui est retourné comme ObservableCollection <Adresse> dans les Reference.cs pour mon service
  3. Les valeurs renvoyées sont définies en tant que ItemSource de la liste.
  4. L'utilisateur sélectionne l'adresse correcte et indique qu'une mise à jour est requise.
  5. instance Address lié à contrôler récipient contenant plusieurs zones de texte

Essentiellement, je veux tout changement dans les zones de texte liées à automatiquement répercutées dans l'instance d'adresse, mais sans INotifyPropertyChanged comment cela fonctionnera? Dois-je créer une autre classe dans mon application SL2 qui remplace les implémentations de propriété de mon objet de données de service?

Quelqu'un peut-il en me diriger là-bas dans la bonne direction sur celui-ci car il est tout simplement pas faire me sens ...

Cheers,

Steve

Répondre

3

Comment allez-vous générer les procurations WCF ? J'ai utilisé "Add Service Reference ..." à partir d'un projet SL2 dans VS2008, et mes proxies générés implémentent INotifyPropertyChanged (même si les types côté serveur ne le font pas).

Pour WCF standard (pas SL2), svcutil a un commutateur /enableDataBinding qui fait tout cela. Si vous utilisez l'EDI, il peut y avoir une case à cocher. Parce que ces proxies sont générés à partir des métadonnées, ils sont complètement indépendants du code côté serveur, donc il n'y a pas de problème avec la version SL2 qui implémente INotifyPropertyChanged.

+0

J'utilise la boîte de dialogue "Ajouter une référence de service" dans VS.NET 2008, l'affichage des paramètres de référence de service une fois que la référence a été créée ne semble pas inclure une option de recherche probable. –

+0

Juste comme suit,/enableDataBinding semble fonctionner, juste en espérant que je peux trouver une option dans l'IDE ... –

+0

Rappelez-vous que laisser l'EDI gérer tous les proxy générant pour vous n'est pas toujours la meilleure idée, surtout si vous essayez de faire quoi que ce soit qui ne soit pas un comportement par défaut. –

Questions connexes