XAML 数据网格列格式持续时间大于 24 小时

XAML datagrid column format duration grater than 24 hours

我有一个从 MySQL 数据库获取数据的数据网格,其中一列表示总时间,例如 4.22:15:00(4 天、22 小时、15 分钟、00 秒)

但是我希望输出为118:15:00(118小时15分00秒)或者118:15也可以。

我正在为该数据网格列使用此代码:

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

这导致:

我已经为 StringFormat 属性 尝试了许多不同的可能性,例如:

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

但是我无法得到想要的输出...

对于后面的代码,我使用 VB。

您需要使用转换器。在转换器内部拆分数据并进行计算,例如天*24+小时...Return 字符串到网格。

它只是在 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;
    }

您可能需要处理异常。