Как преобразовать поля типа DateTime в просто Date во время выполнения IQueryable записей?
Я нахожусь в ситуации, когда мне нужно преобразовать поля с DateTime в Date (DateTime (2011-01-01 00:00:00) в Date ( 2011-01-01 просто строка без времени)), прежде чем я назначу источник в DataGrid (без использования Binding/Converters), коллекция является IQueryable, но не уверен, как это сделать.
Позвольте мне повторить, что я хочу, чтобы коллекцией манипулировали еще до того, как она была назначена источнику DataGrid.
Кто-нибудь может мне помочь? Спасибо
4 ответа
Если проблема заключается только в преобразовании DateTime
в строковое представление, вы можете использовать ToString()
и предоставьте строку форматирования:
DateTime date = new DateTime(2011,01,01);
string dateAsString = date.ToString("YYYY-mm-dd");
См. Страницу MSDN для строк стандартного формата даты и времени, чтобы узнать, как управлять форматом.
Вы также можете выполнить преобразование во время связывания, то есть связать с полем DateTime, но указать формат строки, например, (в XAML):
<TextBlock Text="{Binding Path=YourDateTimeField, StringFormat={}{0:d}"/>
Если вы спрашиваете что-то еще, например, о привязке к IQueryable, нам нужно увидеть некоторый код, демонстрирующий то, что вы пытаетесь выполнить.
Я думаю, я смущен вашим вопросом, учитывая, что нет Date
введите C#. Если вы просто пытаетесь получить DataGrid
отображать DateTime
как строка с форматом даты, вам придется преобразовать ее перед привязкой. Либо используйте конвертер, либо связывайтесь с объектом, который имеет предварительно отформатированную строку даты в этом поле.
Почему не могу
var myGridData = myCollection.Select(c => new { TheDate = c.MyDate.ToShortDateString(), Field3 = c.SomethingElse, ... });
Работа?
Просто отформатируйте DateTime
предметы соответственно:
var results = timeCollection.Select(x => x.ToString("yyyy-MM-dd"));