2016-01-25 3 views
0

Возможно ли отфильтровать BindingSource с учетом свойства типа DateTime? Что-то простое, например BindingSource.Filter = 'start_time Desc'.Простой фильтр BIndingSource by DateTime Свойство

Однако это ничего не значит. Я что-то упускаю? Благодарю.

+0

Смотрите следующее, увидеть, если это решает то, что вы ищете http://stackoverflow.com/ questions/400283/bindingsource-filter-by-date –

ответ

0

Выписка из Замечания раздел BindingSource.Filter собственности: documentation

Обычно используется в сложных сценариях привязки данных, свойство фильтра позволяет просматривать подмножество DataSource. Только базовые списки, реализующие интерфейс поддержки интерфейса IBindingListView.

Когда фильтр не является нулевым, источник BindingSource передает это свойство в список нижележащих. Если вы установите это свойство во время инициализации объекта, вызов будет отложен до завершения инициализации.

Чтобы сформировать значение фильтра, укажите имя столбца, за которым следует оператор, и значение для фильтрации по. Принятый синтаксис фильтра зависит от базового источника данных. Если основным источником данных является DataSet, DataTable или DataView, вы можете указать булевы выражения, используя синтаксис, задокументированный для свойства DataColumn.Expression.

Я выделил выделенные жирным шрифтом важные части. Как вы можете видеть, BindingSource не предоставляет возможности фильтрации. Поддерживается ли это, и синтаксис зависит от базовых данных soure, т. Е. Того, который вы установили для свойства BindinigSource.DataSource.

Следующая применяется только, если вы используете DataTable (DataView) в качестве основного источника. Затем, как упоминалось выше, вы можете использовать синтаксис, описанный здесь DataColumn.Expression Property.

Некоторые вещи, чтобы отметить:

оператор
  • Равенство = (не == как в C#)
  • Дата значения должны быть заключены в #
  • Все буквальные выражения должны быть выражены в инвариантной культуры локали.

Например, фильтрация по определенной start_time значения в вашем примере может быть что-то вроде этого

DateTime startTime = ...; 
BindingSource.Filter = "start_time = #" + startTime.ToString(CultureInfo.InvariantCulture) + "#"; 
+0

Привет, спасибо за ответ. Переменная 'startTime' уже привязана к' DataGridView'. Я ошибся в первоначальном вопросе. Я пытаюсь «Сортировать» строки после того, как одно значение было изменено. – user1027620