2013-05-11 2 views
2

У меня был TimeSpan, сохраненный в SqlCe в тиках, и когда я загружаю данные в DataGrid, я хочу отформатировать это значение в HH: MM: SS. Я стараюсь:как отформатировать время в wpd DataGrid?

<DataGridTextColumn Binding="{Binding tiempo, StringFormat={}{0:hh':'mm':'ss}, TargetNullValue=' --- '}" Width="80" Header="Tiempo"/> 

Но DataGrid показывает «hh: mm: ss» вместо значения.

я стараюсь попробовать его с другими узорами, как StringFormat="hh\:mm\:ss"

Любая идея?

Спасибо! и извините за мой плохой английский!

+0

Не уверен, что вы можете использовать 'String.Format' внутри вашей привязки. Но вы можете легко достичь этого, используя «ValueConverter». Взгляните на этот [учебник] (http://wpftutorial.net/ValueConverters.html) – PoweredByOrange

+0

@ programmer93 Это [StringFormat] (http://msdn.microsoft.com/en-us/library/system.windows. data.bindingbase.stringformat.aspx), а не метод String.Format. – Clemens

ответ

2

Вы могли бы написать это с двойной обратной косой черты:

<DataGridTextColumn Binding="{Binding tiempo, StringFormat=hh\\:mm\\:ss}"/> 

или как это с одиночными обратной косой черты:

<DataGridTextColumn> 
    <DataGridTextColumn.Binding> 
     <Binding Path="tiempo" StringFormat="hh\:mm\:ss"/> 
    </DataGridTextColumn.Binding> 
</DataGridTextColumn> 

хотя это уже форматирование по умолчанию, так

<DataGridTextColumn Binding="{Binding tiempo}"/> 

также должно быть в порядке.

См. Также this answer еще несколько примеров.

+0

мм тот же результат, датаграфит показывает hh: mm: ss, но не форматированное значение – Roomm

+0

Я даже попробовал его с DataGridTextColumn, и он работает для меня. Не могли бы вы показать объявление свойства 'tiempo'? – Clemens

0

Я решил проблему! в базе данных я хранили «tiempo» как bigint, поэтому я изменил его на nvarchar и сделал несколько исправлений, которые он работает. благодарит всех!

Смежные вопросы