Verwenden von Visual C# zum Binden eines DataGrid-Steuerelements an ein Array von Objekten oder Strukturen

Dieser Artikel enthält Informationen zum Binden eines Objektarrays an ein DataGrid-Steuerelement.

Originalversion des Produkts:   Visual C #
Ursprüngliche KB-Nummer:   315786

Zusammenfassung

Das Beispiel in diesem Artikel besteht aus einem Windows Formular mit einem DataGrid-Steuerelement zum Anzeigen von Objekteigenschaftenwerten und vier Befehlsschaltflächen zum Durchsuchen der Zeilen des DataGrid-Steuerelements.

Anforderungen

In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:

  • Visual C#-Programmierkonzepte
  • Visual C# .NET

Entwerfen der Klasse

Eine Klasse, die an ein Steuerelement gebunden werden soll, muss Über Eigenschaftsaccessoren verfügen. Jede Eigenschaft, die gebunden werden soll, muss über die Eigenschaftsmethode Set und die Eigenschaftsmethode Get verfügen. Die in diesem Artikel verwendete Beispielklasse hat drei Member. In diesem Artikel wird nur ein Mitglied beschrieben. Es wurde auch ein parametrisierter Konstruktor bereitgestellt. Dies ist jedoch keine Anforderung.

public class guitar
{
    private string make;
    private string model;
    private short year;

    public guitar()
    {
    }

    public guitar(string make, string model, short year)
    {
        Make=make;
        Model=model;
        Year=year;
    }

    public string Make
    {
        get
        {
            return make;
        }
        set
        {
            make = value;
        }
    }
}

Hinzufügen von Klasseninstanzen zu einem Array

Führen Sie die folgenden Schritte aus, um Instanzen zu erstellen und sie dem Array hinzuzufügen:

  1. Deklarieren Sie ein Array.

  2. Erstellen Sie Instanzen der Klasse, und fügen Sie dann die Instanzen zum Array hinzu.

    private guitar[] arr=new guitar[3];
    arr[0] = new guitar("Gibson", "Les Paul", 1958);
    arr[1] = new guitar("Fender", "Jazz Bass", 1964);
    arr[2] = new guitar("Guild", "Bluesbird", 1971);
    

Binden des Arrays an das DataGrid-Steuerelement

Nachdem das Array aufgefüllt wurde, legen Sie die DataSource-Eigenschaft des DataGrid-Steuerelements auf das Array fest. Die Spalten im DataGrid-Steuerelement werden basierend auf den Eigenschaften aufgefüllt, für die Bereichseigenschaftenaccessoren vorhanden sind.

dataGrid1.DataSource=arr;

Bereitstellen einer Möglichkeit zum Durchsuchen des Arrays

Sie können CurrencyManager das Array durchsuchen. Ordnen Sie dazu CurrencyManager das BindingContext Array dem Steuerelement zu, in diesem Fall dem Array.

private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];

Die CurrencyManager Klasse verfügt über eine Position Eigenschaft, die Sie bearbeiten können, um die Elemente des Arrays zu durchlaufen. Durch Hinzufügen oder Subtrahieren des aktuellen Werts von Positionkönnen Sie die Zeilen des DataGrid Steuerelements durchsuchen.

//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arr.Length - 1;

Schritt-für-Schritt-Beispiel

  1. Erstellen Sie in Visual C# .NET ein neues Windows Application-Projekt. Form1 wird standardmäßig erstellt.

  2. Fügen Sie dem Projekt eine Klasse hinzu.

  3. Ersetzen Sie den Code in "Class1.cs " durch den folgenden Code.

    public class guitar
    {
        private string make;
        private string model;
        private short year;
    
        public guitar()
        {
        }
    
        public guitar(string Make, string Model, short Year)
        {
            make=Make;
            model=Model;
            year=Year;
        }
    
        public string Make
        {
            get
            {
                return make;
            }
            set
            {
                make = value;
            }
        }
    
        public string Model
        {
            get
            {
                return model;
            }
            set
            {
                model = value;
            }
        }
    
        public short Year
        {
            get
            {
                return year;
            }
            set
            {
                year = value;
            }
        }
    }
    
  4. Schließen Sie das Codefenster "Class1.cs ", und wechseln Sie dann zum Formular-Designer.

  5. Fügen Sie formular1 ein DataGrid-Steuerelement hinzu. Passen Sie die Größe des DataGrid-Steuerelements an vier Spalten und drei Zeilen an.

  6. Fügen Sie formular1 vier Schaltflächensteuerelemente hinzu, und ordnen Sie die Schaltflächen dann horizontal an.

  7. Ändern Sie die Text-Eigenschaft von Button1 in "Weiter".

  8. Ändern Sie die Text-Eigenschaft von Button2 in "Previous".

  9. Ändern Sie die Text-Eigenschaft von Button3 in "First".

  10. Ändern Sie die Text-Eigenschaft von Button4 in "Last".

  11. Fügen Sie der Form1-Klasse den folgenden Code hinzu.

    private guitar[] arr=new guitar[3];
    private CurrencyManager currencyManager=null;
    
  12. Wechseln Sie zum Formular-Designer, klicken Sie mit der rechten Maustaste auf das Formular, und klicken Sie dann auf "Eigenschaften".

  13. Klicken Sie auf das Ereignissymbol, und doppelklicken Sie dann auf das Ladeereignis, um das Form1_Load Ereignis ihrem Code hinzuzufügen.

  14. Fügen Sie dem Ereignis den Form1_Load folgenden Code hinzu.

    arr[0] = new guitar("Gibson", "Les Paul", 1958);
    arr[1] = new guitar("Fender", "Jazz Bass", 1964);
    arr[2] = new guitar("Guild", "Bluesbird", 1971);
    currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
    dataGrid1.DataSource=arr;
    
  15. Wechseln Sie, um den Formular-Designer anzuzeigen.

  16. Doppelklicken Sie auf "Weiter", und fügen Sie dem Ereignis den folgenden Code button1_Click hinzu.

    currencyManager.Position++;
    
  17. Doppelklicken Sie auf "Zurück", und fügen Sie dem Ereignis den folgenden Code hinzu button2_Click .

    currencyManager.Position--;
    
  18. Doppelklicken Sie zuerst, und fügen Sie dem Ereignis den folgenden Code button3_Click hinzu.

    currencyManager.Position = 0;
    
  19. Doppelklicken Sie auf "Zuletzt", und fügen Sie dem Ereignis den folgenden Code hinzu button4_Click .

    currencyManager.Position = arr.Length - 1;
    
  20. Erstellen sie das Projekt, und führen Sie es aus.

  21. Klicken Sie auf die Befehlsschaltflächen, um zwischen den Zeilen des DataGrid-Steuerelements zu wechseln.

    Hinweis

    Sie können die Werte der Objekte bei Bedarf bearbeiten.

Verwenden einer Struktur anstelle einer Klasse

Die Regeln zum Binden einer Struktur sind identisch mit den Regeln zum Binden eines Objekts. Eine Eigenschaft, die Memberaccessoren ist, ist erforderlich. Eine zu diesem Zweck erstellte Struktur ähnelt einer Klasse.

Führen Sie die folgenden Schritte aus, um eine Bindung an ein Array von Strukturen zu erstellen.

  1. Ändern Der Definition des Klassenmoduls "Class1.cs " im Beispiel von

    public class guitar
    

    zum folgenden Beispiel:

    public struct guitar
    
  2. Kommentieren Sie den Standardkonstruktor wie folgt aus.

    //public guitar()
    //{
    //}
    
  3. Erstellen Sie das Beispielprogramm, führen Sie es erneut aus, und stellen Sie sicher, dass es mit einem Array von Strukturen funktioniert.

References

Weitere Informationen finden Sie im Thema "Consumer of Data" zu Windows Forms in der Visual Studio .NET Online-Hilfe.