voila je vais soumaitre à votre haute competance le probleme que j'ai rencontré ...
imaginons un bon usercontrol qui possede une dependency property
status (pour le moment on s'en tape du type)
<SASComp:SASStatusStatus= ....
j' veux le binder sur une colection dans un itemcontrol
je fais
un truc simple quoi, et ben vous me croirer je peux changer ce que je veux dans le status des object de ma collection le
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 <ItemsControl ItemsSource="{Binding Path=FunctionalEquipments[ACB].Tiles, Source={StaticResource Controller}}" > <ItemsControl.ItemTemplate> <DataTemplate> <SASComp:SASStatusUpdateText="False" Margin="2,2,0,0" Width="100" Text="{Binding Name}"Status="{Binding TMOverview}"/></DataTemplate> </ItemsControl.ItemTemplate> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Width="206"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl>
CoerceStatusCallback recois toujours la valeur par defaut !!! etonnant
d'autant que le name lui focntionne super bien, la j'en entend au fond de la salle qui me dise que le type est peut etre en cause !! peut etre ... mais le type du name est une string et le type de status est une enum a trois valeur { none, on, off }
maintenant si je fait (avec le meme composant sur la meme fenetre sans changer une ligne de code)
ca marche .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <WrapPanel Width="206"> <SASComp:SASStatusUpdateText="False" DataContext="{Binding Path=FunctionalEquipments[ACB].Tiles[index:0], Source={StaticResource Controller}, Converter={StaticResource TestOnlyConverter}}" Text="{Binding Name}" Margin="2,2,0,0" Status="{Binding TMOverview}" Width="100" /> <SASComp:SASStatusUpdateText="False" DataContext="{Binding Path=FunctionalEquipments[ACB].Tiles[index:1], Source={StaticResource Controller}, Converter={StaticResource TestOnlyConverter}}" Text="{Binding Name}" Margin="2,2,0,0" Status="{Binding TMOverview}" Width="100" />
PS ne vous formalisez par pour le [index:0] c'est juste une astuce que j'ai trouvé pour passer un index (plutot qu'une string)
voir le post http://www.developpez.net/forums/d60...binding-index/
Partager