SO WIRD'S GEMACHT: Binden einer ArrayList oder einer Auflistung von Objekten an ein Windows-Formular mit Visual Basic .NET

Dieser Artikel wurde zuvor veröffentlicht unter D313640
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
313640 HOW TO: Bind an ArrayList or Collection of Objects to a Windows Form Using Visual Basic .NET
In Artikel 313634 wird dieses Thema für Microsoft Visual C# .NET behandelt.
Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.
Zusammenfassung
Dieser Artikel beschreibt die Vorgehensweise zum Binden einer ArrayList mit Objekten an ein Windows-Formular. Das Beispiel in diesem Artikel enthält ein Windows-Formular mit drei Textfeldern zur Anzeige der Objekteigenschaften. Das Beispiel enthält außerdem vier Befehlsschaltflächen zum Durchsuchen der ArrayList.

Zurück zum Anfang

Voraussetzungen

In der folgenden Liste sind die empfohlene Hardware, Software, Netzwerkinfrastruktur und Kenntnisse sowie erforderliche Service Packs aufgeführt:
  • Visual Basic .NET
  • Fortgeschrittenes Verständnis der Visual Basic-Programmierkonzepte
Zurück zum Anfang

Vorgehensweise

Dieser Abschnitt beschreibt die Codingkonzepte, die zur Ausführung dieser Aufgabe benötigt werden.

Zurück zum Anfang

Entwerfen der Klasse

Eine Klasse, die an ein Formular gebunden werden soll, muss Eigenschaftenaccessoren haben. Jede zu bindende Eigenschaft muss die Methoden Property Set und Property Get haben. Die Klasse, die für das Beispiel in diesem Artikel verwendet wird, hat drei Eigenschaften (nur eine wird hier dargestellt). Das Beispiel in diesem Artikel enthält auch einen parametrisierten Konstruktor, der jedoch nicht erforderlich ist.
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)        Me.make = make        Me.model = model        Me.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 PropertyEnd Class
Zurück zum Anfang

Hinzufügen von Klasseninstanzen zu einer ArrayList

Im nächsten Schritt werden die Objekte erstellt und zur Klasse ArrayList hinzugefügt:
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))
Zurück zum Anfang

Binden der Objekteigenschaften an Formularsteuerelemente

Nach dem Füllen der ArrayList können Sie die einzelnen Eigenschaften des Objekts an Windows-Formularsteuerelemente binden. Dazu rufen Sie die Methode Add der Eigenschaft DataBindings des Steuerelements TextBox auf. Übergeben Sie außerdem die zu bindende Steuerelementeigenschaft, den Namen der ArrayList und die Eigenschaft des Objekts.
TextBox1.DataBindings.Add("Text", al, "Make")TextBox2.DataBindings.Add("Text", al, "Model")TextBox3.DataBindings.Add("Text", al, "Year")
Zurück zum Anfang

Bereitstellen einer Möglichkeit zum Durchsuchen der ArrayList

In letzten Schritt dieses Ablaufs verwenden Sie eine CurrencyManager-Klasse zum Durchsuchen der ArrayList. Verbinden Sie dazu den CurrencyManager mit dem BindingContext des Formulars (in diesem Fall die ArrayList).
Private cMan As CurrencyManagercMan = CType(Me.BindingContext(al), CurrencyManager)
Die Klasse CurrencyManager hat eine Eigenschaft Position, die Sie zur Iteration über die Member der ArrayList ändern können. Durch Addition zum oder Subtraktion vom aktuellen Wert von Position können Sie verschiedene Member der ArrayList im Formular anzeigen. Beispiel:
'Move forward one element. cMan.Position += 1'Move back one element.cMan.Position -= 1'Move to the beginning.cMan.Position = 0'Move to the end.cMan.Position = al.Count - 1
Zurück zum Anfang

Beispiel

  1. Erstellen Sie ein neues Windows-Anwendungsprojekt in Visual Basic .NET. Form1 wird standardmäßig zum Projekt hinzugefügt.
  2. Fügen Sie eine Klasse zum Projekt hinzu.
  3. Ersetzen Sie den Code in "Class1.vb" durch folgenden Code:
    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)        Me.make = make        Me.model = model        Me.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. Fügen Sie drei TextBox-Steuerelemente zu Form1 hinzu und ordnen Sie die Steuerelemente horizontal an.
  5. Fügen Sie vier Button-Steuerelemente zu Form1 hinzu und ordnen Sie die Steuerelemente horizontal an.
  6. Ändern Sie die Eigenschaft Text der Schaltflächen wie folgt:
    SchaltflächeText
    Button1Next
    Button2Previous
    Button3First
    Button4Last

  7. Fügen Sie zum Deklarationsteil von Form1 folgenden Code hinzu:
    Private al As New ArrayList()Private cMan As CurrencyManager
  8. Fügen Sie folgenden Code zum Ereignis Form_Load hinzu:
    al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New Guitar("Guild", "Bluesbird", 1971))cMan = CType(Me.BindingContext(al), CurrencyManager)TextBox1.DataBindings.Add("Text", al, "make")TextBox2.DataBindings.Add("Text", al, "model")TextBox3.DataBindings.Add("Text", al, "year")
  9. Fügen Sie folgenden Code nach dem Ereignis Form_Load hinzu:
    Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click        cMan.Position += 1End SubPrivate Sub Button2_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button2.Click        cMan.Position -= 1End SubPrivate Sub Button3_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button3.Click        cMan.Position = 0End SubPrivate Sub Button4_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button4.Click        cMan.Position = al.Count - 1End Sub
  10. Erstellen Sie das Projekt und führen Sie es aus.
  11. Klicken Sie auf die Schaltflächen, um verschiedene Arrayelemente anzuzeigen. Sie können die Werte der Objekte bearbeiten.
Zurück zum Anfang

Verwendung eines Auflistungsobjekts

Sie können auch ein Collection-Objekt zum Speichern der Strukturen verwenden. So testen Sie die Verwendung eines Collection-Objekts:
  1. Suchen Sie folgenden Code in der Ereignisprozedur Form_Load:
    Dim al As New ArrayList()
  2. Ersetzen Sie diesen Code durch folgenden Code:
    Dim al As New Collection()
  3. Speichern Sie die Projektänderungen und führen Sie das Projekt aus.
Zurück zum Anfang
Verweise
Weitere Informationen finden Sie unter dem Thema "Consumer von Daten auf Windows Forms" in der Visual Studio .NET-Onlinehilfe.

Zurück zum Anfang
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 313640 – Letzte Überarbeitung: 02/24/2014 20:25:13 – Revision: 1.0

  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • kbnosurvey kbarchive kbhowtomaster KB313640
Feedback