Pertes de binding via Entity Framework + WPF +WCF
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:
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:
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:
internal static ObservableCollection<Actor> ActorList;
A la reception de la liste des societe, je charge la collection ainsi :
Code:
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:
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