J' ai une application client wpf + services wcf via Entity framework.

Pour resumer le schema de ma DB :

Desfacture qui sont lié a une societé et il y a plusieur article par facture (claisique quoi)

Je rapatrie mes objet facture depuis mon serveur WCF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
List<Invoice> lst =( from p in ctx.Invoices
                         select p).Tolist();
 
foreach (Invoice inv in lst)
{
    inv.SocietéReference.Load();
}
 
return lst;
(Je n'utilise pas le "Include() car il y a plusieur nieaux)

via le debug, le service retourne bien la facture avec la societé liée (FK)
Le client recoi egalement l'objet complet (invoice + societe)

LE PROBLEME :

Dans ma form wpf j'ai une Textbox et une Combobox qui doivent afficher le nom de la societe liée a la fature (datacontext = facture)

La textbox affiche bien le nom mais pas la Combobox

Xaml de ma Combobox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
                      DataContext="{Binding}"
                      SelectedItem="{Binding Path=Societe}"
                      DisplayMemberPath="Name"
La liste des Societe est prechartgé dans une prop static dans Program.cs

Code : Sélectionner tout - Visualiser dans une fenêtre à part
internal static ObservableCollection<Actor> ActorList;
A la reception de la liste des societe, je charge la collection ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Program.ActorList = new ObservableCollection<Actor>(actor);
actor etant la List<Actor> que je recoit du WCF

Au Load de la form je met l'Itemsource de ma Combobox avec l'ObservableCollection.


La chose que je ne comprend pas :

La cbx n'affiche rien SAUF si au load de la form je vais rechercher dans ma liste static l'actor qui a le meme guid et le lie a ma facture :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Actor a = Program.ActorList.First(p => p.GUID == Invoice.Actor.GUID);
Invoice.Actor = a;
This.Datacontext = Invoice;
donc POURQUOI DOI JE REBINDER L ACTOR DEPUIS MON CACHE ALORS QU ILS EST DEJA BINDER DEPUIS MON WCF ????????

de plus pourqoi le Textbox se bind corectement et pas le Combobox ??


merci d'avance