开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜