我在DataTemplate
部分有一个SolidColorBrush
和一个DataTemplate.Resources
。
我想将颜色绑定到DataTemplate
本身绑定的同一数据对象的属性。
但是,这不起作用。刷子被忽略了。为什么呢?
以下是简化代码:
<DataTemplate DataType="{x:Type data:MyData}" x:Name="dtData">
<DataTemplate.Resources>
<SolidColorBrush x:Key="bg" Color="{Binding Path=Color, Converter={StaticResource colorConverter}" />
</DataTemplate.Resources>
<Border CornerRadius="15"
Background="{StaticResource bg}"
Margin="0"
Opacity="0.5"
Focusable="True">
</DataTemplate>
我知道我也可以直接设置它,但我需要将颜色作为资源。
答案 0 :(得分:1)
“在我的机器上工作”:)我有一个理论。你的绑定工作正常,你的边框没有内容所以它只包含一个边框本身,但你设置的背景属性不是BorderBrush,所以实际上你的背景没有区域,你也没有设置BorderThickness所以实际上你有0边框宽度和0高度。所以设置BorderThickness,Width或Height。
答案 1 :(得分:1)
或者,您可以使用以下内容进行简化。
<DataTemplate DataType="{x:Type data:MyData}" x:Name="dtData">
<Border CornerRadius="15"
Background="{Binding Path=Color, Converter={StaticResource colorConverter}}"
Margin="0"
Opacity="0.5"
Focusable="True">
</DataTemplate>