日期格式 WPF 数据网格

Har*_*ald 1 c# wpf datagrid date

我有一个特殊的问题,首先看起来很容易,但我不知道任何解决方案。目前我编写了一个 C#-WPF 应用程序,可以保存预订。预订也有日期,这是我从日历上获取的。我将预订保存到我的 Sql-Express 数据库中,日期的值是“DD.MM.YYYY”,数据类型是日期。

现在,我将数据加载到应用程序中的数据网格中:

    public DataSet SaveDataToDataSet(DataSet dataset)
    {

        string connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Harald\\Desktop\\Farmer´s Calc\\Programmierung\\WPF\\Finanz_WPF\\Finanz_WPF\\FarmersCalc.mdf;Integrated Security=True;User Instance=True";
        string query = "select bezeichnung 'Bezeichnung', einausgaben 'Einnahmen-Ausgaben',  kostenstelle 'Kostenstelle',  datum 'Buchungsdatum', betrag 'Betrag', details 'Details' from Buchung";
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                query, connection);

            adapter.Fill(dataset);
            return dataset;

        }
    }
Run Code Online (Sandbox Code Playgroud)

奇怪的是,DataGrid 中的日期列的格式为“DD.MM.YYYY HH:MM:SS”,但我只想要“DD.MM.YYYY”!我需要说的是,我没有定义列,我使用 AutoGenerateColumns=true 来定义它。有人知道解决方案吗?

Jay*_*Jay 5

看一下这个:

需要在动态构建的 WPF DataGrid 中格式化日期

它涉及在您的网格资源中使用字符串格式。

那里的答案不涉及定义列......包括在自动生成列的事件中处理它。

private void ResultsDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.PropertyType == typeof(DateTime))
    {
        DataGridTextColumn dataGridTextColumn = e.Column as DataGridTextColumn;
        if (dataGridTextColumn != null)
        {
            dataGridTextColumn.Binding.StringFormat = "{0:d}";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)