Ответ 1
Может быть выполнено с помощью ValueConverter:
Это может помочь: Встроенные WPF IValueConverters
Я использую 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" />
Может быть выполнено с помощью ValueConverter:
Это может помочь: Встроенные WPF IValueConverters
<toolkit:DataGridTextColumn
IsReadOnly="True"
Width="SizeToCells"
Header="F. Resolución"
Binding="{Binding ColName, StringFormat=MM/dd/yyyy}" />
без секунд
<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'}" />
Вам нужно будет преобразовать свой тип из SqlDateTime в DateTime, чтобы формат строки работал. Сделайте это, указав свой параметр на дату и время. Так, например, при использовании С# для ввода вашей таблицы.
dlEntry.StartTime = (DateTime)reader.GetSqlDateTime(3);
Это даст вам возможность использовать конвертер по умолчанию С# для времени.
<my:DataGridTextColumn Header="Time" MinWidth="70"
Binding="{Binding Time, StringFormat=t}"
CanUserSort="False" />