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

Переводы статьи Переводы статьи
Код статьи: 316302 - Vizualiza?i produsele pentru care se aplic? acest articol.
За соответствующей информацией по 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 CurrencyManager

cManager = 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 Property
    End 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 CurrencyManager
    Private 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 - Последний отзыв: 8 апреля 2003 г. - Revision: 1.0
Информация в данной статье применима к:
  • Microsoft Visual Basic .NET 2002 Standard Edition
Ключевые слова: 
kbhowto kbhowtomaster KB316302

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com