我正在尝试使用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
来自不同的来源。我只是不知道他们将如何做或如何解决它。谢谢!
答案 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>