J'ai une collection qui contient elle-même une collection. Maintenant, je veux passer par les deux collections dans wpf. J'essaie de lier la propriété Color de la seconde collection à une propriété Dependency de la première collection. Mais jusqu'à présent, je n'ai pas trouvé un moyen de le lier correctement. Dans le cas de la liaison de visibilité, j'ai trouvé une solution de rechange en liant la propriété Visibility-Property de la disposition de la zone de dessin dans le second ItemsPanelTemplate à la propriété voulue.Contrôles d'éléments imbriqués - Liaison au contrôle supérieur
Voici un morceau de code qui représente ma situation:
<ItemsControl x:Name="Itemcntrl10" ItemsSource="{Binding Collection1}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl x:Name="Itemcntrl12" ItemsSource="{Binding Collection2}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Visibility="{Binding Visibility, Converter={StaticResource BooleanToVisibilityConverter}}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="{Binding X}" Y1="{Binding Y}"
X2="{Binding old.X}" Y2="{Binding old.Y}"
StrokeThickness="{Binding Path=DataContext.StrokeThickness, ElementName=ThisMainWindow}"
>
<Line.Stroke>
<SolidColorBrush Color="Black" />
</Line.Stroke>
</Line>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Toute idée comment obtenir ce traité? J'ai pensé à ElementBinding à ItemsControl supérieur mais cela n'a pas résolu mon problème non plus.
Merci beaucoup pour cette réponse rapide! :) – dabuntu