2017-04-12 25 views
0

我有一個使用本地數據庫的.NET WPF應用程序。 我還安裝了本地數據庫運行時。 該數據庫是通過Visual Studio 2015創建的。本地SQL數據庫文件 - 日期顯示爲美式格式

我的用於日期顯示的系統環境是DD/MM/YY。 當我查詢數據庫並在其中顯示DataGrid時,日期返回爲MM/DD/YYYY xx:xx:xx am/pm。

有沒有辦法改變它?我是新來的整個SQL數據庫的東西。

謝謝。

+1

什麼類型的日期被存儲在數據庫中? – Karolis

回答

1

你可以申請一個StringFormat的結合,無論是直接在XAML標記,如果您所定義的列明確:

<DataGrid ...> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding Date, StringFormat=dd\/MM\/yy}" /> 
... 

...或處理AutoGeneratingColumn事件如果您正在使用自動生成的列:

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) 
{ 
    if (e.PropertyName == "Date") //<-- The name of your date column 
    { 
     e.Column = new DataGridTextColumn() { Header = e.PropertyName, Binding = new Binding(e.PropertyName) { StringFormat = "dd/MM/yy" } }; 
    } 
} 
+0

謝謝!數據現在正確顯示。 – Lift

0

做一個轉換器,像

public class DateValueConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      var dateTime = (DateTime?)value; 

      if (dateTime.HasValue) 
      { 
       return dateTime.Value.ToString("dd.MM.yyyy"); 
      } 

      return value; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

,並在DataGrid結合您展示最新調用轉換器。 和XAML看起來像:

<Window.Resources> 
     <!--Converters--> 
     <converters:DateValueConverter x:Key=dateValueConverter /> 
</Window.Resources> 

<DataGrid x:Name="customDataGridName" 
        RowDetailsVisibilityMode="VisibleWhenSelected" 
        ItemsSource="{Binding SomeItems}" 
        CanUserAddRows="False" 
        EnableRowVirtualization="True" 
        AutoGenerateColumns="False" 
      <DataGrid.Columns> 
       <DataGridTextColumn x:Name=dateSomething 
            Width="Auto" 
            Header=Date 
            Binding="{Binding Date,Converter={StaticResource dateValueConverter}}" /> 
            . 
            . 
            . 
      </DataGrid.Columns> 
</DataGrid>