Bonjour à tous,
J'ai un soucis que je n'arrive pas à résoudre (depuis hier, tout de même ...).
J'ai isolé mon soucis au travers d'une simple datagrid qui doit afficher une liste de pays.
Lorsque je lance la page, la grille est vide. Si je passe à une autre page de mon site puis que je reviens sur la page antérieure, la datagrid est bien remplie.
Ce comportement n'est visible que sur la table Pays de mon BD. (je vois bien la liste des régions et départements au premier affichage).
Quelqu'un aurait une idée ?
Comme vous pourrez le constater c'est très simplifié ...
La Datagrid
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <sdk:DataGrid Height="250" HorizontalAlignment="Left" Margin="216,195,0,0" Name="DG1" VerticalAlignment="Top" Width="363" DataContext="{Binding Source={StaticResource Locator}, Path=RechercheVM}" ItemsSource="{Binding Path=ListePays}" />
Le code du ViewModel
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 // Load Pays private void LoadPays() { EntityQuery<Pays> PaysQuery = _Context.GetPaysQuery(); PaysQuery = PaysQuery.OrderBy(p => p.nomPays); _Context.Load(PaysQuery, GetPaysCallBack, null); } private void GetPaysCallBack(LoadOperation<Pays> lo) { if (lo.Entities.Count() > 0) { ListePays = new ObservableCollection<Pays>(lo.Entities); } //LoadRegion1(); } private ObservableCollection<Pays> _listePays; public ObservableCollection<Pays> ListePays { get { return _listePays; } set { if (value != _listePays) { _listePays = value; RaisePropertyChanged("ListeProvPays"); } } }
J'ai placé un point d'arrêt sur ListePays = new ObservableCollection<Pays>(lo.Entities);. Il ne passe dessus qu'au démarrage de l'application (il dispose donc de la liste au moment de l'affichage).
J'ai placé (pour test) un second datagrid qui récupère la liste via le code behind. Ce dernier ne pose aucun pb.
Merci d'avance pour l'aide apportée !!
Partager