样式数据绑定与分配的控件

时间:2013-05-07 21:58:15

标签: c# .net wpf xaml styles

我想创建一个Style作为窗口资源,该样式需要绑定到指定控件中的属性。以下是它的简化示例。

为按钮创建样式并使用指定的按钮控制标记属性应用Background颜色。

<Window.Resources>
    <Style x:Key="TestingStyle" TargetType="Button">
        <Setter Property="Background" Value="{Binding Tag}" />
    </Style>
</Window.Resources>

当我在其Button中添加Color Tag时,此样式应将该颜色应用于Button的背景。这可能吗?

修改

以下是实际的XMAL代码。

<Style x:Key="SeriesStyle" TargetType="Chart:ChartSeries">
    <Setter Property="StrokeThickness" Value="2"/>
    <Setter Property="PointMarkerTemplate">
        <Setter.Value>
            <ControlTemplate>
                <Ellipse Width="7" Height="7" Fill="Lavender" Stroke="{Binding RelativeSource={RelativeSource Self}, Path=SeriesColor}"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

2 个答案:

答案 0 :(得分:2)

是的,可以这样做但是你必须绑定到RelativeSource,以及可能必须创建一个将对象转换为颜色的转换器,这是因为Tag存储的对象不是Color,  下面是添加相对来源的示例。

 <Setter Property="Background" Value="{Binding Path=Tag, RelativeSource={RelativeSource Self}}}" />

编辑:
假设Series Color是ChartSeries上的Property,请使用:

{Binding Path=SeriesColor, RelativeSource={RelativeSource AncestorType={x:Type Chart:ChartSeries}}}

答案 1 :(得分:1)

尝试这个:

<Setter Property="Background" Value="{Binding RelativeSource={RelativeSource Self}, Path=Tag}" />