СЦЕНАРИЙ: Я передаю данные обратно в качестве источника данных DataGrids.Я передаю в строковом поле, которое является датой.Я хочу преобразовать ее в дату, чтобы можно было отсортировать ее, но я также хочу сохранить тот же формат, что и в строке, которая вошла.
ВЫПУСК: Из некоторых моих исследований кажется, чтотип DateTime - это именно тот тип данных в любом наборе данных, в который вы его поместили, и он не форматируется.Поэтому, даже если я ввожу нестандартную строковую дату и преобразовываю ее в datetime через DateTime.ParseExact, когда я помещаю ее в свое поле datetime и пытаюсь отформатировать ее (newRow ["colX"] = colXDate.ToString ("d-МММ-уу "); // как и Скотт выше) он по-прежнему работает в виде установленного формата даты и времени с часами ... и т. Д.
РЕШЕНИЕ: Итак, я решил это дымом и зеркалами.Я поместил 2 столбца в таблицу данных, первый из которых представляет дату отображения в формате строки, а второй - тип datetime.В ItemDataBound я спрятал столбец datetime (e.Item.Cells [5] .Visible = false;), а затем в событии сортировки проверяю столбец строковой даты (e.SortExpression == "colX"), и если это правда,сортировка по скрытому столбцу даты и времени.