【发布时间】:2010-09-13 07:42:44
【问题描述】:
我必须将字符串 ("00:10:08:10") 格式化为 (10 周 08 天 10 小时)。所以我使用了一个转换器并将它与数据网格绑定一起添加。我的代码:
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 Min )。所以转换器显然失败了。我怎样才能让它发挥作用?
附加:mssql 中是否有一种数据类型可以以天数和小时数表示我的数据,这样我就不必使用这种字符串格式了。
【问题讨论】:
-
您的代码可能会在输入“00:10:00:20”时遇到困难 - 这会是 20 分钟,还是向右 10 周?
-
罗兰:为什么会挣扎?显然是 20 分钟。
标签: .net wpf vb.net ivalueconverter