Bonjour, et merci pour vos réponses
En gros j'ai fait ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <Canvas Background="Black" Width="1920" Height="1200">
<ItemsControl ItemsSource="{Binding Model.Zones}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Canvas>
<Grid Canvas.Left="{Binding X}" Canvas.Top="{Binding Y}" Width="{Binding Width}" Height="{Binding Height}">
<Border BorderBrush="White" BorderThickness="1"/>
<ItemsControl ItemsSource="{Binding ZoneAnimations}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Canvas>
<Grid Width="200" Height="200" Background="Blue" />
</Canvas>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Canvas>
<DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas> |
et ca affiche bien ce que j'ai programmé.
Comme je voulais que ma grille bleue (représentant une zoneAnimation), ait sa largeur et hauteur bindée sur celles de la Zone qui le contient, j'ai rajouté une propriété ZoneOwner (de type Zone) dans ma classe ZoneAnimation
et j'ai modifé le code comme ceci :
<Grid Width="{Binding ZoneOwner.Width}" Height="{Binding ZoneOwner.Height}" Background="Blue" />
Ca marche bien, mais est-on obligé de passer par une propriété ZoneOwner, ou bien y-a-t'il plus propre ? (find ancestor, ou que sais-je ...)
Car il se pourrait qu'une ZoneAnimation soit référencé dans plusieurs Zones à la fois, et là l'astuce ne fonctionne plus.
Partager