當數值超過24時,觸發器無法工作。我有一個文本框來測試轉換器,它的工作原理。但是這個標籤的觸發器不起作用。 轉換器是XAML代碼如下觸發器無法正常工作
<Label x:Name="label" Content="{Binding Text, ElementName=textBox2}"HorizontalAlignment="Left" Margin="69,110,0,0" Width="122.63" VerticalAlignment="Top"Background="White"FontSize="26.667">
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding Label.Content, Converter={StaticResource dc}}" Value="Above24">
<Setter Property="Foreground">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="1"/>
<GradientStop Color="#FFCE0A0A"/>
<GradientStop Color="#FF2A0202" Offset="0.75"/>
<GradientStop Color="#FF5B0404" Offset="0.5"/>
<GradientStop Color="#FF9C0707" Offset="0.25"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
class
DataConverter
:
IValueConverter
{
object IValueConverter.Convert
(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
if (value == null) return false;
if (string.IsNullOrEmpty(value.ToString())) return false;
if (Convert.ToInt32(value) < 18) return "Below18";
if (Convert.ToInt32(value) > 24) return "Above24";
return Convert.ToInt32(value) < 100;
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
請出示轉換器 – 2012-02-03 12:52:33
的代碼不會觸發這個有效檢查路徑'對標籤的DataContext的Label.Content'? – 2012-02-03 12:53:25
你的代碼格式是一個真正的混亂。您應該考慮使用其中一種可接受的方式來格式化源代碼。 – 2012-02-03 12:59:26