Ik heb niet echt een probleem, maar even een stijl probleempje. Ik vraag mij namelijk af hoe je het beste een checkboxlist kan vullen met een bit field (enum met FlagsAttribute, dus 1,2,4,8, etc...).
Ik heb nu de volgende (pseudo-)code:
Omdat ik deze code min of meer omslachtig vindt vroeg ik mij af of er misschien een makkelijkere/nettere/snellere oplossing is?
Ik heb nu de volgende (pseudo-)code:
C++:
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
| //c# [Flags] public enum MyEnum { Kip=1, Koe=2, Schaap=4, Varken=8 } CheckBoxList myList; //code om lijst te vullen myList.DataSource = Enum.GetValues(typeof(MyEnum)); //code om de juiste waarden te selecteren in de checkboxlist op basis van bitfield MyEnum combo = Kip | Varken; int bitCounter = 1; foreach(ListItem item in myList.Items) { MyEnum test = (MyEnum)bitCounter; if((combo & test) > 0) { item.Selected = true; } bitCounter = bitCounter * 2; } //code om de waarden uit checkboxlist te halen ProjectType otherCombo; foreach(ListItem item in myList.Items) { if(item.Selected) { otherCombo |= (MyEnum)Enum.Parse(typeof(MyEnum), item.Value, true); } } |
Omdat ik deze code min of meer omslachtig vindt vroeg ik mij af of er misschien een makkelijkere/nettere/snellere oplossing is?
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!