我使用带有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" />
答案 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完成:
答案 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" />