У меня есть вспомогательный класс, который реализует ITypedList, чтобы предоставить объекты для привязки данных к пользовательским коллекциям.Альтернатива ITypedList?
Мое осуществление позволяет мне легко указать, что я хочу, чтобы под-свойства объектов были доступны для привязки данных, например, я могу привязываться к «Идентификатор», «Имя», а также «Дети.Count».
Теперь проблема заключается в том, что для предоставления вспомогательных объектов привязке данных к таким столбцам мне необходимо предварительно заполнить коллекцию этими объектами, а затем, когда сетка запрашивает такие вспомогательные объекты через интерфейс, он вызовет метод на моем объекте, чтобы получить их.
Метод, который он вызывает, имеет параметр, который может использоваться для указания того, какие объекты-объекты-получатели будут извлекаться, но для класса .NET DataGridView он всегда является нулевым, что означает, что мне просто нужно вернуть все объекты, которые у меня есть.
Итак, мой вопрос в этом. Есть ли альтернатива ITypedList, которую я могу реализовать, где мне будет ясно сказано, какие свойства интересует сетка, так что мне не нужно предварительно заполнять коллекцию объектов acccessor?
Вот что мой код выглядит сейчас:
var wrapper = new TypedListWrapper<Person>(someNormalCollectionClass);
wrapper.BindableProperties = "Id;Name;Children.Count";
grid.DataSource = wrapper;
вот то, что я хочу, чтобы это выглядело как:
grid.DataSource = new TypedListWrapper<Person>(someNormalCollectionClass);
Любые берущих?
Если я правильно понял ваш вопрос, вы ищете способ уменьшить количество экземпляров 'PropertyDescriptor', которые вы возвращаете, если базовый тип имеет больше свойств, чем сетка фактически привязана. Это верно? –
Да, потому что, чтобы избежать необходимости указывать список связующих свойств, мне просто нужно было бы заполнить его всем, на что я мог бы попасть. –