Категории
Войти
Поиск
Реклама
Полезное:
Новые статьи
Опечатка?
Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!
Счетчики
| Объекты данных и коллекции |
|
Источники данных в приложениях Windows Forms строятся из экземпляров объектов. Источник данных может быть одиночным экземпляром объекта, или может оформляться как коллекция экземпляров объектов, причем сама коллекция представляет собой экземпляр контейнерного объекта. Эти экземпляры могут быть практически любого типа, включая типы .NET Framework и типы, созданные вами как классы или структуры. По этой причине обсуждение привязки к данным несколько запутывается, поскольку приходится говорить о различных вещах, выделяя их общие качества. Речь может идти о DataSet, ArrayList, BindingList<Customer>, Customer, Foo или некотором неизвестном типе, с которым вашей программе приходится иметь дело через интерфейсный доступ, не располагая сведениями об истинном типе объекта. Кроме того, как только вы спускаетесь до уровня отдельного объекта, вам приходится описывать части объекта, используемые для привязки к данным, а это могут быть свойства, поля, переменные или столбцы. В этой статье я называю объект элементом данных (data item), если он содержится в некоторой коллекции, используемой для привязки к данным. Это может быть экземпляр класса Customer в коллекции Binding-List<Customer>, или DataRow из DataTable в DataSet. Коллекцию объектов я называю просто коллекцией или списком. При этом следует помнить, что во многих сценариях привязки к данным у коллекции должен быть реализован интерфейс iList, чтобы она могла корректно рассматриваться как список. Часть элемента данных, к которому выполняется привязка, может быть открытым свойством экземпляра объекта, или столбцом в строке данных (иногда применяют термин «поле»). В подобных ситуациях я применяю термин «свойство», а если коллекция представляет собой таблицу данных, то вполне можно говорить о «свойстве», как о «столбце в строке данных, являющейся текущим элементом данных». Компонент данных (data member) можно рассматривать, как относительный маршрут к некоторой порции информации в рамках объекта, содержащего данные. Если объект представляет собой единичный экземпляр элемента данных, то компонент данных может выступать, как имя свойства объекта, которое вы хотите использовать для привязки к данным. Например, когда вы организуете привязку к данным для управляющего элемента TextBox (см. подробности в главах 3 и 4), вы создаете экземпляр класса Binding. Вторым параметром для конструктора служит источник данных, а третьим - компонент данных. Следующий пример демонстрирует, как передать ссылку на экземпляр объекта Customer в качестве источника данных, a "CompanyName" - в качестве компонента данных. Если объект сам представляет собой контейнер нескольких коллекций объектов, как, например, DataSet, который содержит более одного объекта DataTable, или является пользовательским объектом со свойством, объявляющим дочернюю коллекцию объектов, то компонент данных является именем объявленного свойства объекта-контейнера. Например, если устанавливается привязка к данным для элемента BindingSource в сложной иерархии объектов, можно задать свойство DataSource для объекта-контейнера верхнего уровня и использовать свойство DataMember для указания части контейнера, содержащей список данных, с которым выполняется связывание. Соответствующий фрагмент кода выглядит так: В этом примере Orders представляет собой относительный маршрут внутри объекта Customer к списку, связываемому с компонентом Binding-Source .
Newer news items:
Older news items:
|
