如何在wpf(DataGrid)中格式化TimeSpan?

时间:2013-05-11 16:41:26

标签: c# wpf datagrid format timestamp

我有一个TimeSpan以刻度形式保存到SqlCe中,当我在DataGrid中加载数据时,我想在HH:MM:SS中格式化该值。我试着这样做:

<DataGridTextColumn Binding="{Binding tiempo, StringFormat={}{0:hh':'mm':'ss}, TargetNullValue=' --- '}"  Width="80" Header="Tiempo"/>

但是DataGrid显示'hh:mm:ss'而不是值。

我也尝试使用其他模式,例如StringFormat="hh\:mm\:ss"

有什么想法吗?

谢谢!抱歉我的英语不好!

2 个答案:

答案 0 :(得分:3)

你可以用双反斜杠写这个:

<DataGridTextColumn Binding="{Binding tiempo, StringFormat=hh\\:mm\\:ss}"/>

或像这样的单反斜杠:

<DataGridTextColumn>
    <DataGridTextColumn.Binding>
        <Binding Path="tiempo" StringFormat="hh\:mm\:ss"/>
    </DataGridTextColumn.Binding>
</DataGridTextColumn>

虽然这已经是默认格式,所以

<DataGridTextColumn Binding="{Binding tiempo}"/>

也应该没问题。

有关更多示例,另请参阅this answer

答案 1 :(得分:0)

我解决了这个问题!在数据库中,我像bigint一样存储“tiempo”,所以我将其更改为nvarchar并进行一些修复工作。 谢谢大家!