Entity Framework + Datagrid

Résolu
blackhox Messages postés 34 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 20 août 2016 - Modifié par blackhox le 4/02/2014 à 19:00
blackhox Messages postés 34 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 20 août 2016 - 5 févr. 2014 à 14:19
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.

1 réponse

blackhox Messages postés 34 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 20 août 2016
Modifié par blackhox le 5/02/2014 à 14:20
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
0
Rejoignez-nous