这适用于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}" />
为什么这种方式不起作用?重用这种风格(实际上是一组这样的风格)会很好。