Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Источник данных для BindingSource поддерживающий, фильтрацию? 
:(
    Опции темы
thomas
Дата 15.3.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Приветствую уважаемое сообщество.

В FW есть класс BindingSource в пространстве имен System.Windows.Forms он унаследован среди прочих от IBindingListView.
У данного класса есть свойство Filter. Но тут всплывает большущее НО. 
Если источник данных для BindingSource реализует этот интрефейс, то фильтрация работает.
Из примеров приведенных в msdn следует, что только один источник данных для BindingSource дает возможность себя фильтровать, а именно класс DataView из пространства имен System.Data.

А как же быть с остальными коллекциями? Что еще можно подсунуть BindingSource в качестве источника данных, что бы можно было их фильтровать?  smile 

На фига нужно это свойство, если его можно применять только в одном случае. Тем более фильтровать можно сам объект DataView напрямую. Там есть свойство RowFilter.

Кто что может сказать по этому поводу?  smile 





--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Любитель
Дата 15.3.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Создаёшь свою реализацию IBindingList (можно наследовать от BindingList<T>) в нём реализуешь фильтрацию, сортировку и всё, что тебе нужно. Ну и биндишь грид на инстанс этого класса.


--------------------
PM MAIL ICQ Skype   Вверх
thomas
Дата 16.3.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Любитель
Приветствую.
Я и так имею BindingList<myClass>, который даю BindingSource как источник данных.

Но нужно что бы источник данных был наследником IBindingListView

И сколько я ни лопатил msdn в разделе коллекций в упор не вижу класса который является наследником этого хитрого интерфейса.

Добавлено через 1 минуту и 35 секунд
Да кстати IBindingList  и соответственно BindingList<T> не поддерживают фильтрацию.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
diadiavova
Дата 16.3.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



thomas, думаю, Любитель имел в виду это
Код

    public class MyBindingList<T>:BindingList<T>, IBindingListView
    {

        #region Члены IBindingListView

        public void ApplySort(ListSortDescriptionCollection sorts)
        {
            throw new NotImplementedException();
        }

        public string Filter
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public void RemoveFilter()
        {
            throw new NotImplementedException();
        }

        public ListSortDescriptionCollection SortDescriptions
        {
            get { throw new NotImplementedException(); }
        }

        public bool SupportsAdvancedSorting
        {
            get { throw new NotImplementedException(); }
        }

        public bool SupportsFiltering
        {
            get { throw new NotImplementedException(); }
        }

        #endregion
    }



Цитата(thomas @  16.3.2009,  10:45 Найти цитируемый пост)
И сколько я ни лопатил msdn в разделе коллекций в упор не вижу класса который является наследником этого хитрого интерфейса.

Лопатить мсдн для этого - лишнее, броузер объектов показывает производные классы, для интерфейсов это классы, их(интерфейсы) реализующие.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Любитель
Дата 16.3.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Хм, насчёт фильтра ты прав. Что ж - наследуемся от BindingList<T> и интерфейса IBindingListView (последний наследуется от IBindingList - так что большинство методов уже будут реализованы). Реализуем методы фильтрации, юзаем.


--------------------
PM MAIL ICQ Skype   Вверх
thomas
Дата 17.3.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Любитель
Как я понял, ты предлагаешь танцы с бубнами.
Значиться нужно самостоятельно писать свой класс типа BindingList<T> с наследованием и реализацией интерфейса IBindingListView.
А потом уже этому классу присваивать значение - имеющийся List<Т> и потом его ( свой класс типа BindingList<T>) уже передавать классу BindingSource в качестве источника данных.
Тогда последний позволит использовать его свойство Filter.


Это сообщение отредактировал(а) thomas - 5.4.2009, 17:21


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Любитель
Дата 17.3.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



Цитата(thomas @  17.3.2009,  15:30 Найти цитируемый пост)
Как я понял, ты предлагаешь танцы с бубнами.

Ну.. Если хочешь можешь это называть так smile Другого способа я не вижу.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.