带有绑定的TextBlock上的条件语句

时间:2018-04-25 12:05:06

标签: c# wpf xaml data-binding

我正在尝试创建一个显示与火车延迟相关的信息的InfoPanel。

我有一个Int变量TrainDelay,它使用转换器转换TimeSpanFormatConverter 我想根据TextBlock使用Binding的值更改TrainDelay中显示的文字。

这是我想实施的条件陈述:

    if TrainDelay > 0  display "Delayed" 
    if TrainDelay < 0  display "In Advance" 
    if TrainDelay = 0  display "On Time"

TimeSpanFormatConverter:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    int time = int.Parse(value.ToString());
    value = TimeSpan.FromSeconds(time);
    if (string.IsNullOrWhiteSpace(value.ToString()) || ((TimeSpan)value).Equals(TimeSpan.MinValue))
        return "––:––";
    else
        return ((((TimeSpan)value) < TimeSpan.Zero) ? "-" : "") + ((TimeSpan)value).ToString(@"mm\:ss");
}

XAML:

<TextBlock  Text="{Binding TrainDelay, Converter={StaticResource TimeSpanFormatConverter}}"/>

我该如何实现呢? ?

1 个答案:

答案 0 :(得分:0)

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    int time = System.Convert.ToInt32(value);

    if (time > 0)
    {
        return "Delayed";
    } 

    if (time < 0 )
    {
        return "In Advance";
    }

    if (time == 0)
    {
        return "On Time";
    }

    return ""; //Or Argument Exception, your call
}