Выписка из Замечания раздел 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) + "#";
Смотрите следующее, увидеть, если это решает то, что вы ищете http://stackoverflow.com/ questions/400283/bindingsource-filter-by-date –