В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Как осуществить привязку элемента управления DataGrid к коллекции объектов или структур с помощью Microsoft Visual Basic .NET

За соответствующей информацией по Microsoft Visual C# .NET обратитесь к следующей статье: 316303.
Аннотация
В данной статье описывается, как осуществить привязку коллекции (ArrayList) объектов к элементу управления DataGrid. Пример состоит из формы Windows с элементом управления DataGrid для отображения значений свойства объекта, а также из четырех кнопок для перемещения по строкам элемента управления DataGrid.

К началу статьи

Требования

Ниже приводится описание рекомендуемого оборудования, программного обеспечения, сетевой инфраструктуры и необходимых пакетов обновлений:
  • Visual Basic .NET
Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний по следующим темам:
  • Концепции программирования на Visual Basic
К началу статьи

Создание класса

Класс, который будет привязан к элементу управления, должен иметь средство доступа к свойствам. Любое свойство, которое будет привязано, должно иметь методы Property Set и Property Get. Класс, представленный в данной статье, имеет три члена (приведен только один). Также имеется параметризованный конструктор, но он не обязателен.
Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    End Class				
К началу статьи

Добавление экземпляров класса в коллекцию

Для создания экземпляров класса и добавления их в коллекцию (ArrayList) выполните следующие действия:
  1. Объявите ArrayList.
  2. Создайте экземпляры класса и добавьте их в ArrayList.
Private al as New Arraylist()al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New guitar("Guild", "Bluesbird", 1971))				
К началу статьи

Привязка списка массивов к DataGrid

После заполнения ArrayList укажите в свойстве DataSource коллекцию ArrayList в качестве источника DataGrid. Столбцы в элементе управления DataGrid заполняются, базируясь на свойствах, для которых имеются средства доступа к свойствам в пределах области видимости.
DataGrid1.DataSource = al				
К началу статьи

Предоставление средств обзора коллекции

Вы можете воспользоваться CurrencyManager для обзора ArrayList. Для этого ассоциируйте CurrencyManager с BindingContext элемента управления (в данном случае, ArrayList).
Private cManager As CurrencyManagercManager = CType(DataGrid1.BindingContext(al), CurrencyManager)				
Класс CurrencyManager имеет свойство Position, которым Вы можете воспользоваться для перебора элементов ArrayList. Путем увеличения или уменьшения действительного значения Position Вы можете перемещаться по строкам элемента управления DataGrid.
'Перейти на один элемент вперед.cManager.Position += 1'Перейти на один элемент назад.cManager.Position -= 1'Перейти в начало.cManager.Position = 0'Перейти в конец.cManager.Position = al.Count - 1				
К началу статьи

Пример

  1. В Visual Basic .NET создайте проект "Приложение Windows". Form1 создается по умолчанию.
  2. В меню Project запустите команду Add Class для добавления класса в проект.
  3. Замените программный код в Class1.vb следующим кодом:
    Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    Public Property model() As String        Get            Return m_model        End Get        Set(ByVal Value As String)            m_model = Value        End Set    End Property    Public Property year() As Short        Get            Return m_year        End Get        Set(ByVal Value As Short)            m_year = Value        End Set    End PropertyEnd Class					
  4. Закройте окно кода Class1.vb code window и переключитесь в режим "Form Designer".
  5. Добавьте элемент управления DataGrid на Form1. Измените размер элемента управления DataGrid до четырех столбцов и трех строк.
  6. Добавьте четыре элемента управления Button в Form1 и расположите кнопки горизонтально.
  7. Для свойства Text элемента Button1 задайте значение Следующий.
  8. Для свойства Text элемента Button2 задайте значение Предыдущий.
  9. Для свойства Text элемента Button3 задайте значение Первый.
  10. Для свойства Text элемента Button4 задайте значение Последний.
  11. Добавьте следующий программный код в класс Form1:
    Private cManager As CurrencyManagerPrivate al as New ArrayList()					
  12. Вставьте следующий код в событие Form1_Load:
    al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New guitar("Guild", "Bluesbird", 1971))				cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)	DataGrid1.DataSource = al					
  13. Вставьте следующий код после процедуры Form_Load:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        cManager.Position += 1    End Sub    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        cManager.Position -= 1    End Sub    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click        cManager.Position = 0    End Sub    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click        cManager.Position = al.Count - 1    End Sub					
  14. Скомпилируйте проект.
  15. Используйте командные кнопки для передвижения по строкам элемента управления DataGrid. Вы можете изменить значения объектов, если это необходимо.
К началу статьи

Использование структуры вместо класса

Правила по привязке структуры такие же, как и для привязки объекта. Средство доступа к свойствам (членам) необходимо. Структура, создаваемая для данной цели, близка к классу.

Для привязки коллекции структур ArrayList выполните следующие действия:
  1. Измените описание модуля класса Class1.vb в примере с
    Public Class guitar'...End Class					
    на:
    Public Structure guitar'...End Structure					
  2. Скомпилируйте программу и убедитесь в ее функционировании с коллекцией структурArrayList.
К началу статьи
Ссылки
Для получения дополнительной информации обратитесь к разделу "Consumers of Data on Windows Forms" онлайн-справки по Visual Studio .NET.

К началу статьи
Свойства

Номер статьи: 316302 — последний просмотр: 04/08/2003 13:37:00 — редакция: 1.0

Microsoft Visual Basic .NET 2002 Standard Edition

  • kbhowto kbhowtomaster KB316302
Отзывы и предложения