WPF Datagrid формат поля времени чч: мм - PullRequest
11 голосов
/ 04 марта 2010

Я использую сетку данных WPF Toolkit с 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 отображается в формате чч: мм: сс .

Как я могу изменить репрезентацию времени в столбце Времени таблицы данных на чч: мм , удаление секунд?

РЕДАКТИРОВАНИЕ : Использование StringFormat=t не дает результата.

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

Ответы [ 4 ]

9 голосов
/ 23 марта 2011
<toolkit:DataGridTextColumn
                    IsReadOnly="True"
                    Width="SizeToCells"
                    Header="F. Resolución"
                    Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />
4 голосов
/ 25 февраля 2013

без секунд

<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 голосов
/ 04 марта 2010

Может быть сделано с помощью ValueConverter:

Это может помочь: Встроенные конвертеры WPal IValue

0 голосов
/ 20 февраля 2014

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

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

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

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