Erstellen eines .NET Framework Windows Forms-Benutzersteuerelements, das die einfache Datenbindung unterstützt
Hinweis
Datasets und verwandte Klassen sind ältere .NET-Technologien aus den frühen 2000er Jahren, die es Anwendungen ermöglichen, mit Daten im Arbeitsspeicher zu arbeiten, während die Anwendungen von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Anwendungen, die es Benutzern ermöglichen, Daten zu ändern und die Änderungen wieder in der Datenbank zu speichern. Obwohl sich Datasets als sehr erfolgreiche Technologie erwiesen haben, empfehlen wir, dass neue .NET-Anwendungen Entity Framework Core verwenden. Entity Framework bietet eine natürlichere Möglichkeit, mit tabellarischen Daten als Objektmodelle zu arbeiten, und verfügt über eine einfachere Programmierschnittstelle.
Zum Anzeigen von Daten in Formularen in Windows-Anwendungen können Sie die in der Toolbox vorhandenen Steuerelemente verwenden oder, falls die gewünschte Funktionalität in den Standardsteuerelementen nicht verfügbar ist, benutzerdefinierte Steuerelemente erstellen. Diese exemplarische Vorgehensweise erläutert, wie Sie ein Steuerelement erstellen, das DefaultBindingPropertyAttribute implementiert. Steuerelemente, die DefaultBindingPropertyAttribute implementieren, können eine Eigenschaft enthalten, die an Daten gebunden werden kann. Solche Steuerelemente sind vergleichbar mit TextBox oder CheckBox.
Weitere Informationen zum Erstellen von Steuerelementen finden Sie unter Entwickeln von Windows Forms-Steuerelementen zur Entwurfszeit.
Beim Erstellen von Steuerelementen, die in Datenbindungsszenarios verwendet werden sollen, sollten Sie eines der folgenden Datenbindungsattribute implementieren:
Verwendung von Datenbindungsattributen |
---|
Implementieren Sie DefaultBindingPropertyAttribute für einfache Steuerelemente, die eine einzige Spalte (oder Eigenschaft) von Daten anzeigen, wie das TextBox-Steuerelement. (Dieser Prozess wird in dieser exemplarischen Vorgehensweise beschrieben.) |
Implementieren Sie ComplexBindingPropertiesAttribute für Steuerelemente, die Listen (oder Tabellen) von Daten anzeigen, wie das DataGridView-Steuerelement. Weitere Informationen finden Sie unter Erstellen eines Windows Forms-Benutzersteuerelements, das die komplexe Datenbindung unterstützt. |
Implementieren Sie die LookupBindingPropertiesAttribute auf Steuerelementen wie einem ComboBox,das Listen (oder Tabellen) von Daten anzeigt, aber auch in einer einzelnen Spalte oder Eigenschaft vorhanden sein muss. Weitere Informationen finden Sie unter Erstellen eines Windows Forms-Benutzersteuerelements, das die Nachschlagedatenbindung unterstützt. |
In dieser exemplarischen Vorgehensweise wird ein einfaches Steuerelement erstellt, das Daten aus einer einzelnen Spalte in einer Tabelle anzeigt. In diesem Beispiel wird die Spalte Phone
der Tabelle Customers
aus der Beispieldatenbank Northwind verwendet. Das einfache Benutzersteuerelement zeigt unter Verwendung einer MaskedTextBox-Klasse und durch das Festlegen der Maske auf eine Telefonnummer die Telefonnummern des Kunden in einem Standard-Telefonnummernformat an.
Bei dieser exemplarischen Vorgehensweise lernen Sie Folgendes:
Erstellen Sie eine neue Windows Forms App (.NET Framework).
Ihrem Projekt ein neues Benutzersteuerelement hinzufügen.
Entwerfen des Benutzersteuerelements im visuellen Designer.
Implementieren des
DefaultBindingProperty
-Attributs.Erstellen eines Datasets mit dem Assistenten zum Konfigurieren von Datenquellen
Legen Sie für die Spalte Phone im Datenquellenfenster fest, dass das neue Steuerelement verwendet wird.
Erstellen eines Formulars, um Daten in dem neuen Steuerelement anzuzeigen.
Voraussetzungen
Für dieses Tutorial müssen die Workloads .NET-Desktopentwicklung und Datenspeicherung und -verarbeitung in Visual Studio installiert sein. Um diese zu installieren, öffnen Sie Visual Studio-Installer und wählen Ändern (oder Weitere>Ändern) neben der Version von Visual Studio aus, die Sie ändern möchten. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten.
In dieser exemplarischen Vorgehensweise werden SQL Server Express LocalDB und die Northwind-Beispieldatenbank verwendet.
Wenn Sie nicht über SQL Server Express LocalDB verfügen, installieren Sie diese Komponente entweder über die SQL Server Express-Downloadseite oder über den Visual Studio-Installer. Im Visual Studio-Installer können Sie SQL Server Express LocalDB als Teil der Workload Datenspeicherung und -verarbeitung oder als einzelne Komponente installieren.
Installieren Sie die Northwind-Beispieldatenbank, indem Sie die folgenden Schritte ausführen:
Öffnen Sie in Visual Studio das Fenster SQL Server-Objekt-Explorer. (Der SQL Server-Objekt-Explorer wird als Teil der Workload für die Datenspeicherung und -verarbeitung im Visual Studio-Installer installiert.) Erweitern Sie den Knoten SQL Server. Klicken Sie mit der rechten Maustaste auf Ihre LocalDB-Instanz, und wählen Sie Neue Abfrage aus.
Ein Abfrage-Editor-Fenster wird geöffnet.
Kopieren Sie das Northwind-Transact-SQL-Skript in die Zwischenablage. Dieses T-SQL-Skript erstellt die Northwind-Datenbank von Grund auf neu und füllt sie mit Daten auf.
Fügen Sie das T-SQL-Skript in den Abfrage-Editor ein, und klicken Sie dann auf die Schaltfläche Ausführen.
Nach kurzer Zeit wird die Ausführung der Abfrage abgeschlossen, und die Northwind-Datenbank wird erstellt.
Erstellen einer Windows Forms-Anwendung
Als erster Schritt wird eine Windows Forms-App (.NET Framework) erstellt:
Wählen Sie in Visual Studio im Menü Datei die Optionen Neu>Projekt aus.
Erweitern Sie entweder Visual C# oder Visual Basic im linken Bereich, und wählen Sie dann Windows Desktop aus.
Wählen Sie im mittleren Bereich den Projekttyp Windows Forms-App aus.
Geben Sie dem Projekt den Namen SimpleControlWalkthrough, und klicken Sie auf OK.
Das Projekt SimpleControlWalkthrough wird erstellt und dem Projektmappen-Explorer hinzugefügt.
Hinzufügen eines Benutzersteuerelements zum Projekt
In dieser exemplarischen Vorgehensweise wird über ein Benutzersteuerelement ein einfaches, datenbindungsfähiges Steuerelement erstellt. Fügen Sie dem SimpleControlWalkthrough-Projekt ein Benutzersteuerelement-Element hinzu:
Klicken Sie im Menü Projekt auf Benutzersteuerelement hinzufügen.
Geben Sie PhoneNumberBox in den Bereich Name ein, und klicken Sie anschließend auf Hinzufügen.
Das PhoneNumberBox-Steuerelement wird dem Projektmappen-Explorer hinzugefügt und im Designer geöffnet.
Entwerfen des PhoneNumberBox-Steuerelements
In dieser exemplarischen Vorgehensweise wird das vorhandene MaskedTextBox-Element erweitert, um das PhoneNumberBox-Steuerelement zu erstellen:
Ziehen Sie ein MaskedTextBox aus der Toolbox auf die Entwurfsoberfläche des Benutzersteuerelements.
Klicken Sie auf das Smarttag auf das soeben gezogene MaskedTextBox-Objekt, und klicken Sie dann auf Maske festlegen.
Wählen Sie Telefonnummer im Dialogfeld Eingabeformat aus, und klicken Sie auf OK, um die Maske festzulegen.
Hinzufügen des erforderlichen Datenbindungsattributs
Implementieren Sie DefaultBindingPropertyAttribute für einfache Steuerelemente, die Datenbindung unterstützen:
Wechseln Sie für das PhoneNumberBox-Steuerelement zur Codeansicht. (Wählen Sie im Menü Ansicht den Befehl Code aus.)
Ersetzen Sie den Code in PhoneNumberBox durch Folgendes:
using System.Windows.Forms; namespace CS { [System.ComponentModel.DefaultBindingProperty("PhoneNumber")] public partial class PhoneNumberBox : UserControl { public string PhoneNumber { get{ return maskedTextBox1.Text; } set{ maskedTextBox1.Text = value; } } public PhoneNumberBox() { InitializeComponent(); } } }
Wählen Sie im Menü Erstellen die Option Projektmappe erstellenaus.
Erstellen einer Datenquelle über Ihre Datenbank
In diesem Schritt wird der Assistent zum Konfigurieren von Datenquellen verwendet, um eine Datenquelle anhand der Customers
-Tabelle in der Beispieldatenbank Northwind zu erstellen. Sie benötigen Zugriff auf die Beispieldatenbank Northwind, um die Verbindung herstellen zu können. Informationen zum Einrichten der Northwind-Beispieldatenbank finden Sie unter Installieren von Beispieldatenbanken.
Klicken Sie zum Öffnen des Fensters Datenquellen im Menü Daten auf Datenquellen anzeigen.
Klicken Sie im Datenquellenfenster auf Neue Datenquelle hinzufügen, um den Assistenten zum Konfigurieren von Datenquellen zu starten.
Wählen Sie auf der Seite Datenquellentyp auswählen die Option Datenbank aus, und wählen Sie dann Weiter aus.
Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung aus einen der folgenden Schritte aus:
Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank „Northwind“ verfügbar ist, wählen Sie diese aus.
Klicken Sie auf Neue Verbindung, um das Dialogfeld Add/Modify Connection (Verbindung hinzufügen/ändern) zu öffnen.
Falls die Datenbank ein Kennwort erfordert, aktivieren Sie die Option für die Einbeziehung vertraulicher Daten, und wählen Sie dann Weiter aus.
Klicken Sie auf der Seite Save connection string to the Application Configuration file (Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern) auf Weiter.
Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.
Wählen Sie die Tabelle
Customers
und dann Fertig stellen aus.Das NorthwindDataSet wird dem Projekt hinzugefügt, und die Tabelle
Customers
wird im Datenquellenfenster angezeigt.
Festlegen der Telefonspalte für die Verwendung des PhoneNumberBox-Steuerelements
Im Datenquellenfenster können Sie vor dem Ziehen von Elementen auf das Formular festlegen, welches Steuerelement erstellt werden soll:
Öffnen Sie Form1 im Designer.
Erweitern Sie im Datenquellenfenster den Knoten Customers.
Klicken Sie auf den Dropdownlistenpfeil auf dem Knoten Customers, und wählen Sie Details aus der Steuerelementliste aus.
Klicken Sie auf den Dropdownlistenpfeil auf der Spalte Phone, und wählen Sie Anpassen aus.
Wählen Sie im Dialogfeld Data UI Customization Options (Optionen für die Anpassung der Datenbenutzeroberfläche) in der Liste Zugeordnete Steuerelemente den Eintrag PhoneNumberBox aus.
Klicken Sie auf den Dropdownlistenpfeil auf der Spalte Phone, und wählen Sie PhoneNumberBox aus.
Hinzufügen von Steuerelementen zu dem Formular
Sie können die datengebundenen Steuerelemente erstellen, indem Sie Elemente aus dem Datenquellenfenster auf das Formular ziehen.
Um datengebundene Steuerelemente im Formular zu erstellen, ziehen Sie den Hauptknoten Customers aus dem Fenster Datenquellen in das Formular, und stellen Sie sicher, dass das PhoneNumberBox-Steuerelement zum Anzeigen der Daten in der Phone-Spalte verwendet wird.
Auf dem Formular werden datengebundene Steuerelemente mit beschreibenden Bezeichnungen sowie ein Toolstrip (BindingNavigator) für die Navigation in den Datensätzen angezeigt. NorthwindDataSet, CustomersTableAdapter, BindingSource und BindingNavigator werden auf der Komponentenleiste angezeigt.
Ausführen der Anwendung
Drücken Sie F5, um die Anwendung auszuführen.
Nächste Schritte
Entsprechend den Anforderungen an Ihre Anwendung sollten Sie nach der Erstellung eines Steuerelements, das die Datenbindung unterstützt, noch weitere Schritte ausführen. Zu den typischen nächsten Schritten gehören Folgende:
Platzieren der benutzerdefinierten Steuerelemente in eine Steuerelementbibliothek, sodass Sie sie in anderen Anwendungen wiederverwenden können.
Erstellen von Steuerelementen, die komplexere Datenbindungsszenarien unterstützen. Weitere Informationen finden Sie unter Erstellen eines Windows Forms-Benutzersteuerelements, das die komplexe Datenbindung unterstützt und Erstellen eines Windows Forms-Benutzersteuerelements, das die Nachschlagedatenbindung unterstützt.