Мне нужно отформатировать строку («00: 10: 08: 10») в (10 недель 08 дней 10 часов). Поэтому я использовал конвертер и добавил его с привязкой datagrid. Мой код:с использованием преобразователей
Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Dim strList(4) As String
Dim prefixList() As String = {"Wk", "Dy", "Hrs", "Min"}
Dim input As String = value.ToString
Dim Output As String = String.Empty
If input <> String.Empty Then
strList = input.Split(":")
Dim itr As Integer
For Each Str As String In strList
If Integer.Parse(Str) <> 0 Then
Output += Str + " " + prefixList(itr) + " "
End If
itr += 1
Next
End If
Return Output
End Function
Я получаю конвертацию, но когда я изменить данные, конвертер вызывается снова, где я бы не старый формат («00: 10: 08: 10»), а вместо этого ИТС (10 Dy 08 Hr 10 мин). поэтому преобразователь не работает. Как я могу заставить его работать?
Дополнительно: И есть тип данных в mssql для представления моих данных в днях и часах, поэтому я не буду использовать этот строковый формат.
Ваш код может работать с входом «00: 10: 00: 20» - и это будет 20 минут или 10 недель справа? –
Rowland: почему это будет бороться? его 20 минут, очевидно. – sarath