IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Différencier modification via RIA et via UI


Sujet :

Silverlight

  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut Différencier modification via RIA et via UI
    Hello tout le monde

    Pour simplifier les choses, mon appli est bindée sur une instance de PricingTaskDTO.
    Je fais des updates via RIA services.

    Lorsque je modifie certaines valeurs dans mon UI, je souhaite en modifier une autre automatiquement.
    J'ai donc surchargé OnPropertyChanged côté SL dans une classe partial de mon entity.

    En gros, mon fichier PricingTaskDTO.partial.cs ressemble à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public sealed partial class PricingTaskDTO : Entity
        {
            protected override void OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e)
            {
                base.OnPropertyChanged(e);
     
                // mon code
            }
    }
    Le truc qui me dérange c'est que je rentre dans ce bout de code aussi bien pour les modifications faites via l'UI que pour les modifications faites lors d'un retour d'update via RIA Services (fonctionnement normal, j'en conviens)

    Est-ce que vous avez une solution propre pour gérer ça ou je me lance dans de la bricole?

    Merci

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Une bonne approche pourrait etre de créer une class qui va être en charge d'observer ces objets, elle va s abonner aux évènement du property changed de tes objet PricingTaskDTO et faire les modification lui même.

    Vu que c'est externalisé dans un objet tier tu peux con troller quand tu l'active ou non.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je vais étudier ça mais ça m’embête de créer encore une class pour ça

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    humm ...

    Si vraiment ca t'embete (si tu as 100 entités à tracker) tu peux toujours faire un truc dans ce genre la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public interface IObservedPropertyChanged : INotifyPropertyChanged
    {
        void PropertyChangedObserved(string propertyName);
    }
     
    public class User : IObservedPropertyChanged
    {
        public void PropertyChangedObserved(string propertyName)
        {
            //entity specific code
        }
    }
    Puis tu crées une seul classe en charge d'observer les "IObservedPropertyChanged" et quand tu reçois ton evenement tu redirige dans la méthode PropertyChangedObserved.

    Comme ca tu créés juste une classe et une interface.

    Si tu as un peu de temps a passer sur ce probleme je te conseil (très) vivement de t'interesser au Rx Framework.
    Un framework permetant d'exprimer un comportement dédié à la programation asynchrone/evenementiel sous la forme d'une requete Linq.

    Extrement puissant

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ok avec ça, mais ça ne résout pas mon problème de savoir qui modifie mon entité, RIA ou le user via l'UI (ou du moins, je ne vois pas comment )

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    Tu controles ton observeur tu peux le désactiver quand tu veux, en créer plusieurs dédiés à telle ou telle tache et par exemple l'activer ou le desactiver (via un simple bool ou avec un using) pendant que tu fais tes appels de web service, tes modifications UI etc ...

    Vu que c'est ta classe qui est dédié a faire de l'observation tu peux parametrer comme tu le souhaite son comportement.

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ok, je vois l'idée

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/04/2009, 13h51
  2. [Driver] Modification d'un tableau via un pointeur et un registre d'index
    Par Voldemort09 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 08/02/2009, 12h04
  3. [CKEditor] erreur de modification d'un article via FCKeditor
    Par wperle dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 10/07/2008, 10h45
  4. Problème de modification de clé primaire via Hibernate
    Par mrjeronimo dans le forum Hibernate
    Réponses: 9
    Dernier message: 31/03/2008, 18h28
  5. Modifications d'une table via une Gridview
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 13
    Dernier message: 01/10/2007, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo