Этот совет затем переводится как «чтобы избежать проблем с большим количеством полей, используйте меньше полей и создавайте больше строк»
Я думаю, что это следует перевести как «использовать меньше полей исоздать меньшие таблицы"(т.е. с меньшим количеством полей).И оригинальный совет должен гласить «[...] разделение одного класса на несколько классов» с меньшим количеством свойств.Как вы правильно заметили, не имеет смысла создавать больше «строк» ...
В любом случае, если у вас do есть класс, который предоставляет сотни или тысячи свойств, у вас естьгораздо более серьезная проблема, чем производительность привязки ... Это серьезный недостаток дизайна, который следует исправить после прочтения некоторых принципов OO .
Применим ли этот совет на самом деле?Я не уверен, относится ли он к .NET 4 / WPF, хотя я использую 3.5 и пользовательскую библиотеку управления на основе WinForms (DevExpress)
Что ж, упомянутая вами страница посвящена WPF, но ядумаю, что идея связывания с более мелкими объектами может быть применима и к WinForms (поскольку чем больше свойств нужно наблюдать, тем медленнее будет)
В качестве отступления: я прав в том, что DataBinding использует отражениекогда используется источник данных в стиле IList?
Вы частично правы ... он на самом деле использует TypeDescriptor
, который, в свою очередь, использует отражение для проверки обычных объектов CLR.Но этот механизм гораздо более гибкий, чем рефлексия: тип может реализовать ICustomTypeDescriptor
для предоставления своего собственного описания, списка членов и т. Д. (DataTable - один из примеров такого типа)