Bonjour,
J'ai un souci j'ai une page Recherche.xaml qui m'affiche une liste de personnes avec leur photos.
Lorsque je clique sur une de ces personnes je passe sur la vue Detail.xaml et la personne avec son descriptif apparait.
Mais quand je fais un retour(avec le bouton "retour" du mobile) sur la page Recherche.xaml la liste de personne est bien là mais leur photo ont disparu.
J'ai fait du debug et la propriété "Photo" de chaque Personne est bien chargé.
Pourquoi elle ne s'affiche pas sur un retour sur la page Recherche.xaml?
Voilà le code de la méthode qui charge les photos : (ne soyez pas effrayé par la longueur c'est assez simple comme opération... la partie finale est là ou je bind mes contrôles à mes objets List.)
En debug si je regarde les objets à l'interieur de mes 2 listes (listcollaborateurs et listprestataires) la propriété photo est bien présente pour chaque personne...
Code : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 private async void LoadPhotoLists(string xmlResult) { List<BitmapImage> listphotoCollab = new List<BitmapImage>(); List<BitmapImage> listphotoPresta = new List<BitmapImage>(); listphotoCollab.Clear(); listphotoPresta.Clear(); XElement xml = XElement.Parse(xmlResult); XElement prestataires = xml.Element("Prestataires"); XElement collaborateurs = xml.Element("Collaborateurs"); imageDataBlocksPresta = new List<byte[]>(); imageDataBlocksCollab = new List<byte[]>(); imageDataBlocksCollab.Clear(); imageDataBlocksPresta.Clear(); foreach (XElement unPrestataireXml in prestataires.Nodes()) { string uriphoto = unPrestataireXml.Element("Photo").Value; if (uriphoto != null) { //getphotostream imageDataBlocksPresta= await _connexion.DownloadAsyncRecherchePhoto(uriphoto, "presta"); } } foreach (XElement unCollaborateurXml in collaborateurs.Nodes()) { string uriphoto = unCollaborateurXml.Element("Photo").Value; if (uriphoto != null) { //getphotostream imageDataBlocksCollab= await _connexion.DownloadAsyncRecherchePhoto(uriphoto, "collab"); } } //conversion bitmap foreach (var bytearray in imageDataBlocksPresta) { var ms = new MemoryStream(bytearray); BitmapImage photo = new BitmapImage(); photo.DecodePixelHeight = 800; photo.DecodePixelWidth = 624; photo.SetSource(ms); listphotoPresta.Add(photo); } foreach (var bytearray in imageDataBlocksCollab) { var ms = new MemoryStream(bytearray); BitmapImage photo = new BitmapImage(); photo.DecodePixelHeight = 800; photo.DecodePixelWidth = 624; photo.SetSource(ms); listphotoCollab.Add(photo); } //on assigne la propriété "Photo" des Personnes aux valeurs de la listphotocollab for (int i=0;i<listphotoCollab.Count;i++) { listCollaborateurs[i].Photo = listphotoCollab[i];//erreur à gérer } for (int i = 0; i < listphotoPresta.Count; i++) { listPrestataires[i].Photo = listphotoPresta[i]; } lbCollaborateurs.DataContext = listCollaborateurs; lbPrestataires.DataContext = listPrestataires; }
Merci d'avance pour votre aide
Partager