2010-03-04 16 views
10

Io uso un WPF Toolkit DataGrid con un LINQ to SQLWPF Datagrid tempo formato hh: mm campo

 <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> 

Colonna Time è associato a un campo di tabella di SQL Server di un Time tipo di dati. Ora il valore temporale sul Datagrid viene visualizzato in un formato hh: mm: ss.

Come è possibile modificare una rappresentazione temporale nella colonna Ora di un Datagrid su hh: mm, rimozione di secondi?

EDIT: L'utilizzo di StringFormat=t non dà risultati.

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

risposta

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

senza secondi

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

con secondi

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

qui è solo il tempo con i secondi:

<toolkit:DataGridTextColumn 
        IsReadOnly="True" 
        Width="SizeToCells" 
        Header="F. Resolución" 
        Binding="{Binding ColName, StringFormat='HH:mm:ss'}" /> 
+0

Questo non ha funzionato. –

+0

un'altra soluzione sarebbe quella di convertire il tuo Periodo ("timespan2 in C# è uguale al" data "dataType in sql server) in DateTime e quindi provare la soluzione di cui sopra! –

+0

ha funzionato per me, ma come posso ... StringFormat = 'HH: mm: ss'} "non presente in centinaia di ore? – Kokombads

0

Sarà necessario convertire il tipo da SqlDateTime a DateTime in modo che il formato di stringa di lavorare. Fallo passando il tuo parametro a datetime. Ad esempio, quando usi C# per portare la tua tabella.

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

Questo vi darà la possibilità di utilizzare il convertitore predefinito C# per il tempo.

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