0
我试图将边框背景颜色更改为红色,如果子textr得到值“0”。我正在尝试使用GreaterThanZero Converter,但它无法执行任何操作。我想知道如果有人可以帮助。如果值大于零,我还需要将texblock前景颜色更改为白色。任何想法都非常感谢。先谢谢你。在Texblock值上调整边框背景颜色?
这是我的XAML:
<Grid>
<Border x:Name="TextBoxBorder" BorderThickness="1" Width="30">
<TextBlock x:Name="TotalTileValue" Text="{Binding TotalItemCount}">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Content, Converter={x:Static local:GreaterThanZeroConverter.Instance}, RelativeSource={RelativeSource Self}}" Value="True" >
<Setter Property="TextBlock.Foreground" Value="White" />
<Setter TargetName="TextBoxBorder" Property="Background" Value="#FFCC0000" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
不幸的是,我不能这样做。这种方式指定的“文本”强制转换无效。感谢您尝试帮助。 – vladc77 2011-02-25 21:10:37
@ vladc77:这就是我最后一行的意思。绑定到内容是没用的,因为TextBlock上没有Content-Property。因此没有任何反应但是,如果绑定到文本,则绑定起作用,但由于您的转换器不知道如何将字符串转换为int,所以会引发异常。你必须扩展转换器的字符串值。例如:if(value is string){int intValue = 0; Int32.TryParse((string)value,out intValue); return intValue> 0;} ... – HCL 2011-02-25 21:21:40
我无法访问转换器。它包装在dll中。看起来我需要创建一个新的。我想知道你有没有好的样品。再次感谢你。 – vladc77 2011-02-25 21:33:16