Bonjour,

j'ai une DataGrid dont le dataProvider est une collection d'objets.
Cette DataGrid possède une colonne affichant une checkbox (via un itemRenderer) pour chaque éléments.
Si je coche des checkbox et que je mets ensuite à jour ma collection d'objets, les checkbox cochées ne restent pas à leur place

Pour illustrer cela voici un code très simple qui reproduit le bug :

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
 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    creationComplete="onCreationComplete()">
 
	<mx:Script>
		<![CDATA[
 
			import mx.collections.ArrayCollection;
 
			[Bindable]
			public var collection:ArrayCollection
 
			public function onCreationComplete():void {
				collection = new ArrayCollection();
				collection.addItem(new Object().name = "AAA");
				collection.addItem(new Object().name = "BBB");
				collection.addItem(new Object().name = "CCC");	
			}
 
			public function updateProvider():void {
				collection = new ArrayCollection();
				collection.addItem(new Object().name = "DDD");
				collection.addItem(new Object().name = "EEE");
				collection.addItem(new Object().name = "FFF");
			}
 
		]]>
	</mx:Script> 
 
	<mx:DataGrid dataProvider="{collection}">
		<mx:columns>
			<mx:DataGridColumn>
            	            <mx:itemRenderer>
			        <mx:Component>
				     <mx:CheckBox label="{data.name}"/>
				</mx:Component>
			    </mx:itemRenderer>
			</mx:DataGridColumn>    
		</mx:columns>
	</mx:DataGrid>
 
	<mx:Button label="Update provider" click="updateProvider()" />
 
</mx:Application>
Si je démarre cette application je me retrouve avec 3 checkboxes dans ma datagrid :

[ ] AAA
[ ] BBB
[ ] CCC

Je coche par exemple ensuite la 1ere et la 2e checkbox:
[x] AAA
[x] BBB
[ ] CCC

J'appuie ensuite sur le bouton "Update Provider" et je me retrouve avec :
[ ] DDD
[x] EEE
[x] FFF

alors que je devrais plutôt me retrouver avec :
[x] DDD
[x] EEE
[ ] FFF

Quelqu'un aurait une explication à cette étrange phénomène et une manière de le résoudre?

Note : Ca bug également si j'utilise des RadioButtons.

Merci d'avance