WPF Datagrid time field format hh:mm
I use a WPF Toolkit Datagrid with a LINQ to SQL
<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>
Column Time
is bound to a SQL Server table field of a Time
datatype. Now time value on the Datagrid is displayed in a format hh:mm:ss.
How could I change a time represantation in the Time column of a Datagrid to hh:mm, removing seconds?
EDIT:
Using StringFormat=t
gives no r开发者_Python百科esult.
<my:DataGridTextColumn Header="Time" MinWidth="70"
Binding="{Binding Time, StringFormat=t}"
CanUserSort="False" />
<toolkit:DataGridTextColumn
IsReadOnly="True"
Width="SizeToCells"
Header="F. Resolución"
Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />
without seconds
<toolkit:DataGridTextColumn
IsReadOnly="True"
Width="SizeToCells"
Header="F. Resolución"
Binding="{Binding ColName, StringFormat='MM/dd/yyyy HH:mm'}" />
with seconds
<toolkit:DataGridTextColumn
IsReadOnly="True"
Width="SizeToCells"
Header="F. Resolución"
Binding="{Binding ColName, StringFormat='MM/dd/yyyy HH:mm:ss'}" />
here is only time with seconds:
<toolkit:DataGridTextColumn
IsReadOnly="True"
Width="SizeToCells"
Header="F. Resolución"
Binding="{Binding ColName, StringFormat='HH:mm:ss'}" />
Can be done using ValueConverter:
This can help: Built-in WPF IValueConverters
You will need to convert your type from SqlDateTime to DateTime in order for the string format to work. Do this by casting your parameter to datetime. So for example when using c# to bring in your table.
dlEntry.StartTime = (DateTime)reader.GetSqlDateTime(3);
This will give you the ability to use the C# default converter for time.
<my:DataGridTextColumn Header="Time" MinWidth="70"
Binding="{Binding Time, StringFormat=t}"
CanUserSort="False" />
精彩评论