【问题标题】:WPF Datagrid time field format hh:mmWPF Datagrid 时间字段格式 hh:mm
【发布时间】:2011-01-23 13:09:03
【问题描述】:

我使用带有 LINQ to SQL 的 WPF 工具包数据网格

       <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" />

【问题讨论】:

    标签: wpf datagrid wpftoolkit


    【解决方案1】:
    <toolkit:DataGridTextColumn
                        IsReadOnly="True"
                        Width="SizeToCells"
                        Header="F. Resolución"
                        Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />
    

    【讨论】:

      【解决方案2】:

      没有秒

      <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'}" />
      

      【讨论】:

      • 另一种解决方案是将您的时间跨度(C# 中的“timespan2 等于 sql server 中的“时间”数据类型)转换为 DateTime,然后尝试上述解决方案!
      • 它对我有用,但我怎样才能使 ...StringFormat='HH:mm:ss'}" 在一百小时内不存在?
      【解决方案3】:

      可以使用 ValueConverter 完成:

      这可以帮助: Built-in WPF IValueConverters

      【讨论】:

        【解决方案4】:

        您需要将类型从 SqlDateTime 转换为 DateTime 才能使字符串格式正常工作。通过将参数转换为日期时间来做到这一点。因此,例如,当使用 c# 引入您的表格时。

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-21
          • 2018-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-10
          相关资源
          最近更新 更多