Подтвердить что ты не робот

Формат поля WPF Datagrid hh: mm

Я использую WPat Toolkit Datagrid с 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>

Столбец Time привязан к полю таблицы SQL Server типа Time. Теперь значение времени в Datagrid отображается в формате hh: mm: ss.

Как мне изменить временную репрезентацию в столбце Time Datagrid на hh: mm, удалив секунды?

ИЗМЕНИТЬ: Использование StringFormat=t не дает результата.

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

Ответ 2

<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />

Ответ 3

без секунд

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

Ответ 4

Вам нужно будет преобразовать свой тип из SqlDateTime в DateTime, чтобы формат строки работал. Сделайте это, указав свой параметр на дату и время. Так, например, при использовании С# для ввода вашей таблицы.

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

Это даст вам возможность использовать конвертер по умолчанию С# для времени.

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