本地SQL数据库文件 - 日期以美国格式显示

时间:2017-04-12 00:56:40

标签: sql .net wpf

我有一个使用本地数据库的.NET WPF应用程序。 我还安装了本地数据库运行时。 数据库是通过Visual Studio 2015创建的。

我的日期显示系统环境是DD / MM / YY。 当我查询数据库并在其中显示DataGrid时,日期返回为MM / DD / YYYY xx:xx:xx am / pm。

有没有办法改变这个?我是整个SQL数据库的新手。

感谢。

2 个答案:

答案 0 :(得分:1)

如果要明确定义列,可以直接在XAML标记中将StringFormat应用于绑定:

<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" } };
    }
}

答案 1 :(得分: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>