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

C# Discussion :

Binding de références/jointure


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur Junior développement logiciels
    Inscrit en
    Mai 2014
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Junior développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 198
    Par défaut Binding de références/jointure
    Bonjour,

    Je travail sur un formulaire pour modifier les enregistrements d'une table.


    Admettons que j'ai une table Devise avec un ID et un symbole.

    En plus de sa j'ai une Commande (achat) qui à pour clé étrangère un IDDevise.


    Mon problème est que lors de la modification mon ID est bien répercuté sur ma View mais pas pour le symbole.

    Pour être plus concret si je fais 2 colonnes comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <ig:TextColumn Key="CommandeFournisseur.Devise.Symbole" HeaderText="Devise"/>
    <ig:TextColumn Key="CommandeFournisseur.IDDevise" HeaderText="Devise"/>

    ce qui donne :
    Nom : Capture.PNG
Affichages : 89
Taille : 2,5 Ko


    Lorsque je change ma combo mon ID est mis à jour mais pas mon symbole...

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Normal, il faut aussi MAJ la navigation-property Devise.
    AFAIK EF n'écoute pas INPC, donc même si tu notifies quand tu modifies IDDevise cela n'aura aucun impact de ce côté.
    Seule la DataGrid écoute d'où le fait que ça soit bien répercuté chez elle.

    Même en utilisant des proxies je ne suis pas sûr que la MAJ se fasse automatiquement...

    Peut être qu'un coup de DetectChanges ferait l'affaire également...

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur Junior développement logiciels
    Inscrit en
    Mai 2014
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Junior développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 198
    Par défaut
    Si j'utilise un Converter sa pourrai le faire ?
    Jvais aller voir comment s'utilise DetectChanges.

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Si tu parles d'un IValueConverter ça ne changera rien puisque le convertisseur est invoqué par le moteur de binding quand il détecte que la valeur source a changée.
    Or celle-ci, la propriété Devise, n'est pas modifiée.

    En revanche DetectChanges me semble une bonne piste.

    Mais sinon il suffit de le faire manuellement quand tu détectes le changement tu assignes la bonne devise à la propriété Devise.
    Là c'est sûr ça devrait être OK, on n'est jamais mieux servi que par soi-même.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur Junior développement logiciels
    Inscrit en
    Mai 2014
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Junior développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 198
    Par défaut
    En fait j'ai fini par faire comme pour l'autre cas.

    J'ai rajouter le OnIDDeviseChanged dans ma classe partial:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            partial void OnIDDeviseChanged()
            {
                base.OnPropertyChanged("Devise");
            }
    Et ça a donc l'air de fonctionner.

    Faudra vraiment que je me penche sur le fonctionnement des évènement et changement de valeur pour mieux comprendre tout ce fonctionnement car je dois admettre que pour le moment ça reste un peu flou.

Discussions similaires

  1. Erreur : Existence de jointure de référence
    Par beegees dans le forum PowerAMC
    Réponses: 5
    Dernier message: 07/05/2013, 19h07
  2. Références indéfinies avec bind
    Par Kernald dans le forum Boost
    Réponses: 2
    Dernier message: 20/08/2009, 16h31
  3. bind XML - référence nulle sur SelectSingleNode
    Par Bindy dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 14/04/2009, 11h59
  4. [FireBird] Champs de références ou jointures.
    Par aityahia dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/07/2007, 10h40
  5. [ADO.Net] Comment réaliser une jointure bindée ?
    Par prophetky dans le forum Accès aux données
    Réponses: 4
    Dernier message: 18/02/2006, 16h17

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