Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Informationen zum Binden eines Arrays von Objekten an ein DataGrid-Steuerelement.
Originalproduktversion: 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 Beispielklasse, die in diesem Artikel verwendet wird, besteht aus drei Elementen. In diesem Artikel wird nur ein Mitglied beschrieben. Ein parametrisierter Konstruktor wurde ebenfalls bereitgestellt. Dies ist jedoch nicht unbedingt erforderlich.
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 dem Array hinzuzufügen:
Deklarieren Sie ein Array.
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
Legen Sie nach dem Auffüllen des Arrays 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 In-Scope-Eigenschaftsaccessoren vorhanden sind.
dataGrid1.DataSource=arr;
Bereitstellen einer Möglichkeit zum Durchsuchen des Arrays
Sie können das Array durchsuchen CurrencyManager
. Ordnen Sie CurrencyManager
BindingContext
dies dem Steuerelement zu, in diesem Fall das 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 von dem aktuellen Wert des Position
Steuerelements kö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
Erstellen Sie in Visual C# .NET ein neues Windows-Anwendungsprojekt. Formular1 wird standardmäßig erstellt.
Fügen Sie dem Projekt eine Klasse hinzu.
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; } } }
Schließen Sie das Class1.cs Codefenster, und wechseln Sie dann zum Formular-Designer.
Hinzufügen eines DataGrid-Steuerelements zu Form1. Größe des DataGrid-Steuerelements, um vier Spalten und drei Zeilen aufzunehmen.
Fügen Sie vier Schaltflächensteuerelemente zu Form1 hinzu, und ordnen Sie die Schaltflächen dann horizontal an.
Ändern Sie die Texteigenschaft von Button1 in "Weiter".
Ändern Sie die Texteigenschaft von Button2 in "Previous".
Ändern Sie die Texteigenschaft von Button3 in "First".
Ändern Sie die Texteigenschaft von Button4 in "Last".
Fügen Sie der
Form1
-Klasse den folgenden Code hinzu.private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;
Wechseln Sie zum Formular-Designer, klicken Sie mit der rechten Maustaste auf das Formular, und klicken Sie dann auf Eigenschaften.
Klicken Sie auf das Ereignissymbol , und doppelklicken Sie dann auf das Ladeereignis, um das
Form1_Load
Ereignis ihrem Code hinzuzufügen.Fügen Sie dem
Form1_Load
-Ereignis 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;
Wechseln Sie zum Anzeigen des Formular-Designers.
Doppelklicken Sie auf "Weiter", und fügen Sie dann dem
button1_Click
Ereignis den folgenden Code hinzu.currencyManager.Position++;
Doppelklicken Sie auf "Zurück", und fügen Sie dann dem
button2_Click
Ereignis den folgenden Code hinzu.currencyManager.Position--;
Doppelklicken Sie auf "Zuerst", und fügen Sie dann dem
button3_Click
Ereignis den folgenden Code hinzu.currencyManager.Position = 0;
Doppelklicken Sie auf "Zuletzt", und fügen Sie dann dem
button4_Click
Ereignis den folgenden Code hinzu.currencyManager.Position = arr.Length - 1;
Erstellen Sie das Projekt, und führen Sie es aus.
Klicken Sie auf die Befehlsschaltflächen, um zwischen den Zeilen des DataGrid-Steuerelements zu wechseln.
Notiz
Sie können die Werte der Objekte bei Bedarf bearbeiten.
Verwenden einer Struktur anstelle einer Klasse
Die Regeln zum Binden einer Struktur entsprechen den Regeln zum Binden eines Objekts. Die Eigenschaft, die Memberaccessoren ist, ist erforderlich. Eine Struktur, die für diesen Zweck erstellt wird, ähnelt einer Klasse.
Führen Sie die folgenden Schritte aus, um eine Bindung an ein Array von Strukturen zu erstellen.
Ändern der Definition des Class1.cs Klassenmoduls im Beispiel von
public class guitar
zum folgenden Beispiel:
public struct guitar
Kommentieren Sie den Standardkonstruktor wie folgt aus.
//public guitar() //{ //}
Erstellen Sie das Beispielprogramm erneut, und 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 on Windows Forms " in der Visual Studio .NET Online-Hilfe.