Форматирование даты WPF - PullRequest
       4

Форматирование даты WPF

1 голос
/ 02 ноября 2011

У меня есть особая проблема, которая сначала кажется очень простой, но я не знаю никакого решения. На данный момент я программирую C # -WPF-приложение, которое позволяет сохранять заказы. В бронировании также есть дата, которую я беру из календаря. Я сохраняю бронирование в своей базе данных Sql-Express, и значение даты равно «ДД.ММ.ГГГГ», тип данных - дата.

Теперь я загружаю данные в сетку данных в моем приложении:

    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;

        }
    }

Как ни странно, столбец даты в DataGrid имеет формат «ДД.ММ.ГГГГ ЧЧ: ММ: СС», но я хочу только «ДД.ММ.ГГГГ»! Что мне нужно сказать, так это то, что у меня нет определенных столбцов, я делаю это с AutoGenerateColumns = true. Кто-нибудь знает решение для этого?

Ответы [ 2 ]

4 голосов
/ 02 ноября 2011

Проверьте это:

Необходимо форматировать даты в динамически создаваемой WPF DataGrid

Это включает использование форматирования строк в ваших ресурсах Grid.

Там есть ответы, которые не включают определение столбцов ... включая обработку его в событии для автоматически генерируемых столбцов.

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}";
        }
    }
}
2 голосов
/ 02 ноября 2011

Тип Sql "date" в конечном итоге становится DateTime в вашем наборе данных, поэтому вы тоже получаете время. Вам нужно определить столбцы и указать форматирование в вашей сетке данных.

РЕДАКТИРОВАТЬ: я ошибся из-за невозможности отформатировать это при автоматической генерации столбцов. Как упоминается в другом ответе, этот вопрос: Необходимость форматирования дат в динамически создаваемой WPF DataGrid посвящена некоторым способам достижения этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...