Bonjour,
Après m'être posé bien des questions, j'ai finis par trouver pourquoi mon programme faisait n'importe quoi hier. Mais même si j'ai trouvé le pourquoi, je n'ai aucune solution à y appliquer. Vous allez peut-être pouvoir m'aider.
J'ai une classe avec 3 propriétés de type Int16.
Je crée un formulaire avec 3 checkbox et je bind chaque propriété sur celles-ci.
A l'exécution, tout se passe bien.
Jusque là, pas de souci me direz-vous !
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 public partial class Form1 : Form { Test test = new Test(); public Form1() { InitializeComponent(); checkBox1.DataBindings.Add(new Binding("Checked", test, "P1")); checkBox2.DataBindings.Add(new Binding("Checked", test, "P2")); checkBox3.DataBindings.Add(new Binding("Checked", test, "P3")); } } class Test { private System.Int16 _P1; private System.Int16 _P2; private System.Int16 _P3; public System.Int16 P1 { get { return _P1;} set { _P1 = value; } } public System.Int16 P2 { get { return _P2;} set { _P2 = value; } } public System.Int16 P3 { get { return _P3; } set { _P3 = value; } } }
Là où ça se complique, c'est si j'utilise les Nullable.
Là, sur l'interface, ça fait n'importe quoi. Quand je coche une case, ça en décoche une autre et inversement. On dirait que le programme se comporte comme s'il était impossible d'avoir toutes les checkbox cochées ou décochées en même temps.
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 class Test { private Nullable<System.Int16> _P1; private Nullable<System.Int16> _P2; private Nullable<System.Int16> _P3; public Nullable<System.Int16> P1 { get { return _P1;} set { _P1 = value; } } public Nullable<System.Int16> P2 { get { return _P2;} set { _P2 = value; } } public Nullable<System.Int16> P3 { get { return _P3; } set { _P3 = value; } } public Test() { P1 = 0; P2 = 0; P3 = 0; } }
En quoi Nullable peut-il influencer ce comportement ?
Papy !
Partager