Условный оператор для TextBlock с привязкой - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь создать инфо-панель, которая отображает некоторую информацию относительно задержки поезда.

У меня есть Int переменная TrainDelay, которая конвертируется с помощью конвертера TimeSpanFormatConverter Я хотел бы изменить отображаемый текст в моем TextBlock в соответствии со значением TrainDelay, используя Binding.

это условное утверждение, которое я хотел бы реализовать:

    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 голосов
/ 25 апреля 2018
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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...