2010-03-04 61 views
10

我使用WPF工具包Datagrid的用LINQ to SQL的WPF Datagrid的时间字段格式为hh:mm

 <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的时间列中的时间再抑制改为hh:mm,移除秒数?

编辑: 使用StringFormat=t没有给出结果。

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

回答

9
<toolkit:DataGridTextColumn 
        IsReadOnly="True" 
        Width="SizeToCells" 
        Header="F. Resolución" 
        Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" /> 
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'}" /> 
+0

这没有奏效。 – 2014-02-19 21:19:35

+0

另一种解决方案是将TimeSpan(“C#中的timespan2等于sql服务器中的”time“dataType)转换为DateTime,然后尝试上述解决方案! – 2014-02-20 12:11:26

+0

它为我工作,但我该如何做... StringFormat ='HH:mm:ss'}“在百个小时内不存在? – Kokombads 2015-02-13 09:23:09

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" /> 
相关问题