WPF Datagrid时间字段格式hh:mm

时间:2010-03-04 06:01:33

标签: wpf datagrid wpftoolkit

我使用带有LINQ to SQL的WPF Toolkit Datagrid

       <my:DataGrid AutoGenerateColumns="False" Name="dataGrid2">
        <my:DataGrid.Columns>
            <my:DataGridTextColumn Header="Date" MinWidth="80"
                                       Binding="{Binding Date, StringFormat=d}"
                                       CanUserSort="False"/>
            <my:DataGridTextColumn Header="Time"  MinWidth="70" 
                                       Binding="{Binding Time}"
                                       CanUserSort="False" />
            <my:DataGridTextColumn Header="Description" MinWidth="200"
                                       Binding="{Binding Description}" 
                                       CanUserSort="False"/>
        </my:DataGrid.Columns>
    </my:DataGrid>

Time绑定到Time数据类型的SQL Server表字段。现在,Datagrid上的时间值以 hh:mm:ss 格式显示。

如何将Datagrid的Time列中的时间represantation更改为 hh:mm ,删除秒?

修改: 使用StringFormat=t没有结果。

<my:DataGridTextColumn Header="Time"  MinWidth="70" 
                                       Binding="{Binding Time, StringFormat=t}"
                                       CanUserSort="False" />

4 个答案:

答案 0 :(得分:9)

<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />

答案 1 :(得分:4)

没有秒

<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat='MM/dd/yyyy HH:mm'}" />

秒数

<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat='MM/dd/yyyy HH:mm:ss'}" />

这里只有几秒钟的时间:

<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat='HH:mm:ss'}" />

答案 2 :(得分:2)

可以使用ValueConverter完成:

这有助于: Built-in WPF IValueConverters

答案 3 :(得分:0)

您需要将类型从SqlDateTime转换为DateTime才能使字符串格式生效。通过将参数转换为datetime来完成此操作。例如,当使用c#引入你的表时。

dlEntry.StartTime = (DateTime)reader.GetSqlDateTime(3);

这将使您能够使用C#默认转换器的时间。

<my:DataGridTextColumn Header="Time"  MinWidth="70" 
Binding="{Binding Time, StringFormat=t}"
CanUserSort="False" />