Здравствуйте, McSpace, Вы писали:
MS>Читай про шаблон "Адаптер".
MS>Можно сделать класс наследник от столь либимого вами ArrayList, MyCollection, например. В нём реализуете свою вспоморательную функциональность.
Можно сделать свой DataView (класс, в котором реализованы IList, ITypedList и IBindingList) который будет служить адаптером твоих ArrayList'ов для GUI контролов.
MS>Недостаток подхода с использованием везде ArrayList в том, что ArrayList не типизирует объекты с которыми работает. У него всегда внутри просто object. Если использовать типизированные коллекции наследники от вашего класса MyCollection, то можно "отловить" больше ошибок на этапе компиляции.
Согласен. Использование нетипизированных коллекций не есть хорошо. Лучше сделать жестко-типизировынне коллекции отнаследовав их от CollectionBase.
Можно ли создать что-то вроди DataView для ArrayList-а
Можно ли создать что-то вроди DataView для ArrayList-а.
DataGrid прекрасно работает с DataTable для отображения которого можно использовать
DataView, но я хочу использовать ArrayList наполненый объектами моих класов. Можно ли
создать что-то вроди Viewer-а для ArrayList-а который бы мог нормально отображать
объекти содержащиеся внутри ArrayList-а?
Дело в том что я везде в програме использую именно ArrayList для оперирования
наборами объектов а когда пришлось создать интерфейс пользователя для работы с этими
наборами данных у меня возникло куча проблем при использовании для этих целей DataGrid-а.
Помогите справиться с этой проблемой!
Re: Можно ли создать что-то вроди DataView для ArrayList-а
Можно сделать класс наследник от столь либимого вами ArrayList, MyCollection, например. В нём реализуете свою вспоморательную функциональность.
Недостаток подхода с использованием везде ArrayList в том, что ArrayList не типизирует объекты с которыми работает. У него всегда внутри просто object. Если использовать типизированные коллекции наследники от вашего класса MyCollection, то можно "отловить" больше ошибок на этапе компиляции.
Например, коллекция Users оперирует объектами User и т.д. Иногда колекции должны оперировать объектами различных классов, но приведённых к одному интерфейсу.
While (!Life.EOF){
You.Money ++;
You.Girls.Add(new Girl(90,60,90));
BeHappy();
}
Re: Можно ли создать что-то вроди DataView для ArrayList-а
Здравствуйте, ignaci_м, Вы писали:
_>Можно ли создать что-то вроди DataView для ArrayList-а.
Конечно можно. Как уже говорили, лучше использовать типизированные коллекции. А для получения функционала сортировок и прочего смотреть в сторону интерфейса IBindingList. Для вложенных в объект списков объектов (отображаются в гриде как связанные таблица, т.е. с плюсиком) использовать атрибут ListBindableAttribute (пример использования я недавно кидал — Re: DataGrid показ связанных таблиц