Манипулирование данными посредством источника привязки

после того как вы установите

Источник привязки сам по себе предоставляет вам косвенный доступ к данным, хранящимся в нижележащем источнике данных на стороне клиента. После того, как вы установите свойство DataSource Источника привязки, вам более не потребуется хранить ссылку на сам источник данных, поскольку она будет сохраняться источником привязки. И вы всегда можете получить ссылку на источник данных путем приведения значения свойства DataSource К ожидаемому типу. Единственный недостаток подобного подхода заключается в том, что в той точке кода, где вы используете ссылку из DataSource, Вы должны точно знать тип коллекции данных, к которому прикрепляется источник привязки. Ключ ко всей концепции — в понимании того, что в качестве источника данных для родительского источника привязки необходимо установить родительскую коллекцию объектов, а в качестве источника данных для дочернего источника привязки — ссылку на родительский источник привязки. Тогда свойство DataMember Дочернего источника привязки должно быть именем свойства в родительском объекте, которое является ссылкой на дочернюю коллекцию. Здесь это свойство Children, Принадлежащее к типу Binding — List<ChildObject>. При этом BindingList Является обобщенным типом коллекций, предусмотренным в. NET 2.0 специально для привязки данных в Windows Forms, a ChildObject — это тип-параметр коллекции, специфицирующий тип объектов, которые будет содержать коллекция. Используя эту методику каскадирования источников привязки, вы можете поддерживать иерархии родительских и дочерних данных произвольной глубины. Вы, кроме того, всегда можете получить текущий элемент данных в коллекции через свойство Current Источника привязки. Свойство Current Возвращает ссылку на объект, и, если вы знаете типы всех элементов коллекции, вы опять же можете выполнить соответствующее приведение типа и работать с элементами данных. Помните, что тип объекта, возвращаемого свойством Current, Всегда будет DataRowView Во всех случаях, когда вы привязываетесь к DataTable Или DataView, И это будет экземпляр какого-то объектного типа, хранящегося в коллекции, если вы работаете со специальными объектами.

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

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