Entity Framework + Datagrid [Résolu]

Messages postés
36
Date d'inscription
jeudi 31 octobre 2013
Dernière intervention
20 août 2016
-
Bonjour à tous,

Voici mon problème :

Depuis la source de données je glisse et je dépose sur mon userControl ma table LOCALITES.

J'ajoute le code suivant :


private System.Data.Objects.ObjectQuery<LOCALITES> GetLOCALITESQuery(Modele modele)
{
// Code généré automatiquement

System.Data.Objects.ObjectQuery<GDinfo.LOCALITES> lOCALITESQuery = modele.LOCALITES;
// Pour charger explicitement les données, il se peut que vous deviez ajouter des méthodes Include identiques aux suivantes :
// lOCALITESQuery = lOCALITESQuery.Include("LOCALITES.PAYS").
// Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkId=157380
// Retourne un ObjectQuery.
return lOCALITESQuery;
}


public void datagrid()
{
if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
{
GDinfo.Modele modele = new GDinfo.Modele();
// Chargez les données dans LOCALITES. Vous pouvez modifier ce code si nécessaire.
System.Windows.Data.CollectionViewSource lOCALITESViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("lOCALITESViewSource")));
System.Data.Objects.ObjectQuery<GDinfo.LOCALITES> lOCALITESQuery = this.GetLOCALITESQuery(modele);
lOCALITESViewSource.Source = lOCALITESQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
}
}

Lorsque je lance mon application le datagrid est bien rempli, mais ma colonne pays contient la clé primaire de la table pays et non le nom du pays (ce qui est logique). j'aurais voulu savoir comment faire pour qu'il remplace cet ID DU PAYS (qui en réalité est la clé étrangère) par le nom du pays

Dans le code généré il me parle .Include("LOCALITES.PAYS") est-ce que ça vient de la?

Merci d'avance pour vos réponses.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
36
Date d'inscription
jeudi 31 octobre 2013
Dernière intervention
20 août 2016
0
Merci
J'ai trouvé la solution...

En fait c'est tout simple et un oubli de ma part

Dans le datagrid.column dans mon code XAML pour la colonne qui correspondait à la clé primaire de la table pays il suffit d'insérer ceci :

<DataGridTextColumn x:Name="lOCALITE_FK_PAYS_IDColumn" Binding="{Binding Path=PAYS.PAYS_NOM}" Header="PAYS" Width="SizeToHeader" />

Il suffit donc simplement de modifier le Binding Path
Commenter la réponse de blackhox

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.