Через интерфейсы можно сделать то же самое. Определяешь методы GetCount(), GetData(), SetData() и все. Таблица сама будет их дергать при отрисовке и редактировании.
Да, но это гараздо сложнее получается (через интерфейсы). А так полчуается очень быстро.
"Мне дженерики не нравятся тем, что если требуется что-то больше, чем просто хранение данных - сортировка, поиск, фильтрация - то вся простота и элегантность теряется." А пример таких запросов можешь привести?