TreeView Template:绑定返回null

时间:2012-06-14 09:18:19

标签: wpf binding

我正在尝试使用this example设置TreeView的样式,一切正常,直到我尝试将绑定添加到DataContext。也就是说,我将带有Fill的箭头的Paths的{​​{1}}替换为当前主题。这是相关代码:

MultiBinding

我在转换器中设置了一个断点,问题似乎是两个<Path x:Name="Collapsed" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="1" Data="M 4 0 L 8 4 L 4 8 Z"> <Path.Fill> <SolidColorBrush> <SolidColorBrush.Color> <MultiBinding Converter="{StaticResource ThemeToColorConverter}" ConverterParameter="Foreground"> <Binding Path="Themes" /> <Binding Path="ThemeIndex" /> </MultiBinding> </SolidColorBrush.Color> </SolidColorBrush> </Path.Fill> </Path> 找不到他们的Bindings,因为他们都将Paths发送到转换器。但是,我在代码中先前设置null样式时使用相同的代码,按钮显示完美。

我唯一能想到的是,在Button中,TreeView Style来自不同的来源。我只是不知道他们将如何做或如何解决它。谢谢!

1 个答案:

答案 0 :(得分:1)

好的,我知道了,所以我发布了我的解决方案,所以其他任何有相同问题的人都可以(希望)找到它。问题是绑定绑定到TreeView Items而不绑定UserControl's DataContext,因此我将UserControl命名为Bindings' ElementNames并将其设置为:

<Path x:Name="Collapsed" HorizontalAlignment="Left" VerticalAlignment="Center"
      Margin="1" Data="M 4 0 L 8 4 L 4 8 Z">
   <Path.Fill>
       <SolidColorBrush>
           <SolidColorBrush.Color>
               <MultiBinding Converter="{StaticResource ThemeToColorConverter}"
                             ConverterParameter="Foreground">
                   <Binding ElementName="Control" Path="Themes" />
                   <Binding ElementName="Control" Path="ThemeIndex" />
               </MultiBinding>
           </SolidColorBrush.Color>
       </SolidColorBrush>
   </Path.Fill>
</Path>