我正在尝试创建一个显示与火车延迟相关的信息的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}}"/>
我该如何实现呢? ?
答案 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
}