我有一个 Collection 包含一个 Collection 本身。现在我想通过 wpf 中的两个集合。我正在尝试将第二个集合的颜色属性绑定到第一个集合的依赖属性。但是直到现在,我还没有找到正确绑定它的方法。在 Visibility-Binding 的情况下,我通过将第二个 ItemsPanelTemplate 中画布布局的 Visibility-Property 绑定到想要的属性找到了解决方法。
这是一段代表我的情况的代码:
<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>
任何想法如何处理这个问题?我考虑过 ElementBinding 到上层 ItemsControl 但这也没有解决我的问题。