RelativeSource自绑定工作在控件上但不在内部样式设置器时

时间:2013-10-18 00:16:47

标签: xaml windows-phone-7 windows-phone-8 windows-phone

这适用于Windows Phone 8。

假设我有一组TextBlocks我希望根据他们绑定的文本更改其前景色。

if (text == "0")
  return Red;
else
  return Green;

我可以使用相对源绑定实现此目的:

<TextBlock Foreground="{Binding Text, Converter={StaticResource TextBrushConverter}, RelativeSource={RelativeSource Self}}" Text="{Binding SomeText}" />

但是如果我把它移到样式设定器中,它就不再按预期工作了:

<Style x:Name="MyStyle" TargetType="TextBlock">
    <Style.Setters>
        <Setter Property="Foreground" 
                Value="{Binding Text, 
                    Converter={StaticResource TextBrushConverter}, 
                    RelativeSource={RelativeSource Self}}" />
    </Style.Setters>
</Style>

<TextBlock Style="{StaticResource MyStyle}" Text="{Binding SomeText}" />

为什么这种方式不起作用?重用这种风格(实际上是一组这样的风格)会很好。

0 个答案:

没有答案