2010-03-04 36 views
10

tôi sử dụng một WPF Toolkit DataGrid với LINQ to SQLWPF DataGrid thời gian định dạng lĩnh vực hh: mm

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

Cột Time được ràng buộc vào một bảng lĩnh vực SQL Server của một datatype Time. Bây giờ giá trị thời gian trên DataGrid được hiển thị ở định dạng hh: mm: ss.

Làm cách nào để thay đổi thời gian represantation trong cột Thời gian của một DataGrid thành hh: mm, xóa giây?

CHỈNH SỬA: Sử dụng StringFormat=t không cho kết quả.

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

Trả lời

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

mà không giây

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

với giây

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

ở đây là chỉ có thời gian với giây:

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

Điều này không hiệu quả. –

+0

giải pháp khác sẽ được chuyển đổi Timespan của bạn ("timespan2 trong C# là bằng thời gian" dataType trong sql server) vào DateTime và sau đó thử giải pháp trên! –

+0

nó làm việc cho tôi, nhưng làm thế nào tôi có thể làm ... StringFormat = 'HH: mm: ss'} "không có trong hàng trăm giờ? – Kokombads

0

Bạn sẽ cần phải chuyển đổi loại hình từ SqlDateTime để DateTime để các định dạng chuỗi để làm việc. Làm điều này bằng cách truyền tham số của bạn đến datetime. Vì vậy, ví dụ khi sử dụng C# để đưa vào bảng của bạn.

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

Điều này sẽ cung cấp cho bạn khả năng sử dụng bộ chuyển đổi mặc định C# cho thời gian.

<my:DataGridTextColumn Header="Time" MinWidth="70" 
Binding="{Binding Time, StringFormat=t}" 
CanUserSort="False" /> 
Các vấn đề liên quan