2010-03-04 20 views
10

que utilizan una cuadrícula de datos WPF Toolkit con un LINQ a SQLtiempo WPF Datagrid 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> 

Columna Time está enlazado a un campo de tabla de SQL Server de un tipo de datos Time. Ahora el valor de tiempo en la cuadrícula de datos se muestra en un formato hh: mm: ss.

¿Cómo podría cambiar una represantación de tiempo en la columna de tiempo de una cuadrícula de datos a hh: mm, eliminando los segundos?

EDITAR: Usando StringFormat=t no da ningún resultado.

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

Respuesta

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

sin segundos

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

con segundos

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

aquí es sólo el tiempo con segundos:

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

Esto no funcionó. –

+0

otra solución sería convertir tu Timespan ("timespan2 en C# es igual al" tiempo "dataType en el servidor sql) en DateTime y luego probar la solución anterior! –

+0

funcionó para mí, pero ¿cómo puedo hacer ... StringFormat = 'HH: mm: ss'} "¿no está presente en cien horas? – Kokombads

0

Usted tendrá que convertir su tipo de SqlDateTime a DateTime para que el formato de cadena para trabajar. Haz esto lanzando tu parámetro a datetime. Entonces, por ejemplo, al usar C# para traer su tabla.

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

Esto le dará la posibilidad de utilizar el convertidor predeterminado C# por tiempo.

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