Аналог DataView для List и BindingList

Начитавшемуся умных книг программисту-новичку могут придти в голову странные идеи. Например заменить стандартные DataTable собственными классами, обьединив их в списки List<T>. Пойдя на это программист моментально сталкивается с целым рядом проблем. Прежде всего обычный List в отличие от DataTable не поддерживает автоматическое обновление данных в связанных с ним элементах интерфейса. Преодолеть это можно использованием класса BindingList<T> из пространства имен System.ComponentModel.

Теперь при связке с чем-то вроде DataGridView наши данные будут обновляться. Но сортировка работать не будет и стандартными средствами это никак не решить - остается только дописывать самостоятельно. В качестве одного из вариантов можно использовать сделанный добрым человеком класс BindingListView, работающий полностью аналогично DataView или добавлять сортировку в сам BindingList, как это сделал другой добрый человек в классе SortableBindingList.

Но даже в этом случае мы не получим всей функциональности DataTable - так как этот класс еще отслеживает все изменения вроде изменения и удаления столбцов - их автоматически использует DataAdapter, чтобы не выполнять лишних операций в базе данных. Аналогичные функции в нестандартные классы придется добавлять самостоятельно.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>