Bonjour,
Mon problème intervient avec un modèle Entity Framework, mais je pense que ce doit être la même chose avec de simples objets.
Je cherche à afficher dans une datagrid les éléments d'une table qui contient des références à d'autres objets (propriétés de navigation).
Pour ces objets, je souhaite afficher la désignation et non l'identifiant.
La saisie est réalisée à l'extérieur de la grille.
En clair : je cherche à afficher dans la liste des Imputations.
Une Imputation possède :
- une propriété Date
- une propriété Durée (numérique)
- une propriété Personne
Personne est une autre entité possédant :
- un identifiant
- un nom
Dans ma grille, je souhaite afficher le nom et non l'identifiant de la personne.
Je réalise donc un binding :
Au chargement, tout se passe comme prévu le nom est bien affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <DataGridTextColumn Binding="{Binding Path=Presonne.Nom, Mode=OneWay}" />
Si je modifie (panneau de saisie à l'extérieur de la grille dont le datasource est le même que la grille) la date ou la durée, les modifications sont rafraichies automatiquement dans la grille.
Par contre, si je modifie la personne, pas de rafraichissement de la nouvelle valeur.
La valeur est bien prise en compte : si j'affiche dans la grille l'identifiant, il est modifié.
Par ailleurs, le simple fait de réaliser un tri sur la grille rafraichit les valeurs.
Donc pour résumer, il doit y avoir quelque chose à faire pour dire à la grille de mettre à jour les valeurs obtenues par "navigation", mais quoi ?
Merci d'avance...
Partager