Bonjour à tous,
Je commence le wpf depuis peu et je retrouve confronté a un problème.
J'ai une listbox bindée avec une classe static qui récupère les données dans une base (avec linQ). Le bind se passe bien au début, par contre si je veux rafraichir ma listbox la fonction list.Items.refresh() ne fonctionne pas...
La solution que j'ai trouve est de redefinir le datacontext avec list.datacontext = classStatic.listerDonneesBD() mais je ne pense pas que cela soit très propre ...
Apres 1h de test j'obtiens cela :
Si je bind avec lst1() cela marche parfaitement par contre si je bind avec list2() et que j'incrémente nb le refresh ne fonctionne pas...
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 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; namespace WpfCine { class toto { public string str{ get; set;} } class testlist { /* Fonctionne */ private static List<toto> _lst1; public static List<toto> lst1() { if (_lst1 == null) { _lst1 = new List<toto>(); _lst1.Add(new toto() { str = "TEST1" }); _lst1.Add(new toto() { str = "TEST2" }); _lst1.Add(new toto() { str = "TEST3" }); } return _lst1; } public static void add(string st) { _lst1.Add(new toto() { str = st }); } /* ne Fonctionne pas */ public static int nb = 5; public static List<toto> list2() { var res = new List<toto>(); for (int i = 0; i < nb; i++) res.Add(new toto() { str = i.ToString() }); return res; } } }
Quelqu'un voudrait-il m'expliquer se phénomène s'il vous plait ?
Partager