2017-02-13 9 views
0

У меня есть DataGrid, который получает данные из базы данных MySQL и один столбец представляет собой общее время, как 4.22:15:00 (4 дня, 22 часов, 15 минут, 00 секунд)XAML длительность формата столбец DataGrid терка чем за 24 часа

Но Я хочу, чтобы выход был 118:15:00 (118 часов, 15 минут, 00 секунд) или 118:15 также в порядке.

Я использую этот код для этой DataGrid колонки:

<DataGridTextColumn Header="HOURS" Binding="{Binding Hours}" /> 

что приводит:

enter image description here

Я пытался много различных возможностей для свойства StringFormat как:

StringFormat={}{0:hh':'mm} 

но я не мог получить desir ed output ...

Для кода, который я использую VB.

+0

Я бы предложил не использовать изображения в ваших вопросах. –

+0

Каков точный тип свойства 'Hours'? – ASh

+1

Не уверен, что вы можете сделать это напрямую с датой, вам может потребоваться преобразовать это в промежуток времени. –

ответ

0

Его просто о разборе строки в IValueConverter:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     string str = value as string; 
     int idot = str.IndexOf("."); 
     int days = int.Parse(str.Substring(0,idot)); 
     int idotdot = str.IndexOf(":"); 
     int ho = int.Parse(str.Substring(idot+1, idotdot-idot-1)); 
     int newho = days * ho; 
     string res = newho.ToString() + str.Substring(idotdot); 
     return res; 
    } 

Вам может понадобиться для обработки исключений.

0

Вам необходимо использовать преобразователь. Внутри конвертера разделить данные и выполнить расчет, как дни * 24 + часы ... Возврат строки в сетку.

 Смежные вопросы

  • Нет связанных вопросов^_^