WPF - 将颜色资源绑定到DataTemplate中的数据对象

时间:2010-05-22 09:40:24

标签: c# .net wpf data-binding datatemplate

我在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>

我知道我也可以直接设置它,但我需要将颜色作为资源。

2 个答案:

答案 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>