我有一个 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 但这也没有解决我的问题。