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.
Hinweis
Die DataSet Klassen und verwandten Klassen sind ältere .NET Framework-Technologien aus den frühen 2000er Jahren, mit denen Anwendungen mit Daten im Arbeitsspeicher arbeiten können, während die Apps von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Apps, mit denen Benutzer Daten ändern und die Änderungen wieder in der Datenbank speichern können. Obwohl Datasets eine bewährte erfolgreiche Technologie sind, ist der empfohlene Ansatz für neue .NET-Anwendungen die Verwendung von Entity Framework Core. Entity Framework bietet eine natürlichere Möglichkeit zum Arbeiten mit tabellarischen Daten als Objektmodelle und verfügt über eine einfachere Programmierschnittstelle.
Sie können Daten für Benutzer Ihrer Anwendung anzeigen, indem Sie Daten an WPF-Steuerelemente binden. Um diese datengebundenen Steuerelemente zu erstellen, können Sie Elemente aus dem Datenquellenfenster in Visual Studio auf den WPF-Designer ziehen. In diesem Thema werden einige der am häufigsten verwendeten Aufgaben, Tools und Klassen beschrieben, mit denen Sie datengebundene WPF-Anwendungen erstellen können.
Allgemeine Informationen zum Erstellen von datengebundenen Steuerelementen in Visual Studio finden Sie unter Binden von Steuerelementen an Daten in Visual Studio. Weitere Informationen zur WPF-Datenbindung finden Sie unter Data Binding Overview.
Aufgaben beim Binden von WPF-Steuerelementen an Daten
In der folgenden Tabelle sind die Aufgaben aufgeführt, die durch Ziehen von Elementen aus dem Fenster "Datenquellen " in den WPF-Designer ausgeführt werden können.
| Aufgabe | Mehr Informationen |
|---|---|
| Neue datengebundene Steuerelemente erstellen. Binden vorhandener Steuerelemente an Daten. |
Binden von WPF-Steuerelementen an ein Dataset |
| Erstellen Sie Steuerelemente, die verwandte Daten in einer Eltern-Kind-Beziehung anzeigen: Wenn der Benutzer einen übergeordneten Datensatz in einem Steuerelement auswählt, zeigt ein anderes Steuerelement die zugehörigen untergeordneten Daten für den ausgewählten Datensatz an. | Anzeigen verwandter Daten in WPF-Anwendungen |
| Erstellen Sie eine Nachschlagetabelle , in der Informationen aus einer Tabelle basierend auf dem Wert eines Fremdschlüsselfelds in einer anderen Tabelle angezeigt werden. | Erstellen von Nachschlagetabellen in WPF-Anwendungen |
| Binden eines Steuerelements an ein Bild in einer Datenbank. | Binden von Steuerelementen an Bilder aus einer Datenbank |
Gültige Ablageziele
Sie können Elemente im Datenquellenfenster nur auf gültige Dropziele im WPF-Designer ziehen. Es gibt zwei Haupttypen gültiger Dropziele: Container und Steuerelemente. Ein Container ist ein Benutzeroberflächenelement, das in der Regel Steuerelemente enthält. Beispielsweise ist ein Raster ein Container, und ein Fenster ist auch ein Container.
Generiertes XAML und Code
Wenn Sie ein Element aus dem Datenquellenfenster in den WPF-Designer ziehen, generiert Visual Studio XAML, das ein neues datengebundenes Steuerelement definiert (oder ein vorhandenes Steuerelement an die Datenquelle bindet). Für einige Datenquellen generiert Visual Studio auch Code in der CodeBehind-Datei, die die Datenquelle mit Daten ausfüllt.
In der folgenden Tabelle sind der XAML-Code und der Code aufgeführt, den Visual Studio für jeden Datenquellentyp im Fenster " Datenquellen " generiert.
| Datenquelle | Generieren von XAML, das ein Steuerelement an die Datenquelle bindet | Generieren von Code, der die Datenquelle mit Daten ausfüllt |
|---|---|---|
| Datensatz | Ja | Ja |
| Entitätsdatenmodell | Ja | Ja |
| Dienstleistung | Ja | Nein |
| Objekt | Ja | Nein |
Datensätze
Wenn Sie eine Tabelle oder Spalte aus dem Fenster " Datenquellen " in den Designer ziehen, generiert Visual Studio XAML, das folgende Aktionen ausführt:
Fügt das Dataset und ein neues CollectionViewSource zu den Ressourcen des Containers hinzu, in den Sie das Element gezogen haben. Dies CollectionViewSource ist ein Objekt, das zum Navigieren und Anzeigen der Daten im Dataset verwendet werden kann.
Erstellt eine Datenbindung für ein Steuerelement. Wenn Sie das Element in ein vorhandenes Steuerelement im Designer ziehen, bindet der XAML-Code das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt der XAML-Code das Steuerelement, das für das gezogene Element ausgewählt wurde, und bindet das Steuerelement an das Element. Das Steuerelement wird innerhalb eines neuen Grid erstellt.
Visual Studio nimmt außerdem die folgenden Änderungen an der CodeBehind-Datei vor:
- Erstellt einen Loaded Ereignishandler für das UI-Element, das das Steuerelement enthält. Der Ereignishandler füllt die Tabelle mit Daten, ruft die CollectionViewSource Ressourcen des Containers ab und macht dann das erste Datenelement zum aktuellen Element. Wenn bereits ein Loaded Ereignishandler vorhanden ist, fügt Visual Studio diesen Code dem vorhandenen Ereignishandler hinzu.
Entitätsdatenmodelle
Wenn Sie eine Entität oder eine Entitätseigenschaft aus dem Datenquellenfenster in den Designer ziehen, generiert Visual Studio XAML, das folgende Aktionen ausführt:
Den Ressourcen des Containers, in den Sie das Element gezogen haben, wird eine neue CollectionViewSource hinzugefügt. Dies CollectionViewSource ist ein Objekt, das zum Navigieren und Anzeigen der Daten in der Entität verwendet werden kann.
Erstellt eine Datenbindung für ein Steuerelement. Wenn Sie das Element in ein vorhandenes Steuerelement im Designer ziehen, bindet der XAML-Code das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt der XAML-Code das Steuerelement, das für das gezogene Element ausgewählt wurde, und bindet das Steuerelement an das Element. Das Steuerelement wird in einem neuen Grid erstellt.
Visual Studio nimmt außerdem die folgenden Änderungen an der CodeBehind-Datei vor:
Fügt eine neue Methode hinzu, die eine Abfrage für die Entität zurückgibt, die Sie auf den Designer gezogen haben (oder die Entität, die die Eigenschaft enthält, die Sie auf den Designer gezogen haben). Die neue Methode hat den Namen
Get<EntityName>Query, wobei\<EntityName>der Name der Entität ist.Erstellt einen Loaded Ereignishandler für das UI-Element, das das Steuerelement enthält. Der Ereignishandler ruft die
Get<EntityName>QueryMethode auf, um die Entität mit Daten zu füllen, die CollectionViewSource Ressourcen des Containers abzurufen und dann das erste Datenelement zum aktuellen Element zu machen. Wenn bereits ein Loaded Ereignishandler vorhanden ist, fügt Visual Studio diesen Code dem vorhandenen Ereignishandler hinzu.
Dienste
Wenn Sie ein Dienstobjekt oder eine Eigenschaft aus dem Datenquellenfenster in den Designer ziehen, generiert Visual Studio XAML, das ein datengebundenes Steuerelement erstellt (oder ein vorhandenes Steuerelement an das Objekt oder die Eigenschaft bindet). Visual Studio generiert jedoch keinen Code, der das Proxydienstobjekt mit Daten ausfüllt. Sie müssen diesen Code selbst schreiben. Ein Beispiel, das die Vorgehensweise veranschaulicht, finden Sie unter Binden von WPF-Steuerelementen an einen WCF-Datendienst.
Visual Studio generiert XAML, in dem Folgendes ausgeführt wird:
Den Ressourcen des Containers, in den Sie das Element gezogen haben, wird eine neue CollectionViewSource hinzugefügt. Dies CollectionViewSource ist ein Objekt, das zum Navigieren und Anzeigen der Daten im Objekt verwendet werden kann, das vom Dienst zurückgegeben wird.
Erstellt eine Datenbindung für ein Steuerelement. Wenn Sie das Element in ein vorhandenes Steuerelement im Designer ziehen, bindet der XAML-Code das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt der XAML-Code das Steuerelement, das für das gezogene Element ausgewählt wurde, und bindet das Steuerelement an das Element. Das Steuerelement wird in einem neuen Grid erstellt.
Objekte
Wenn Sie ein Objekt oder eine Eigenschaft aus dem Datenquellenfenster in den Designer ziehen, generiert Visual Studio XAML, das ein datengebundenes Steuerelement erstellt (oder ein vorhandenes Steuerelement an das Objekt oder die Eigenschaft bindet). Visual Studio generiert jedoch keinen Code, um das Objekt mit Daten zu füllen. Sie müssen diesen Code selbst schreiben.
Hinweis
Benutzerdefinierte Klassen müssen öffentlich sein und standardmäßig über einen Konstruktor ohne Parameter verfügen. Sie können keine geschachtelten Klassen sein, die in ihrer Syntax einen "Punkt" aufweisen. Weitere Informationen finden Sie unter XAML und benutzerdefinierte Klassen für WPF.
Visual Studio generiert XAML, in dem Folgendes ausgeführt wird:
Fügt zu den Ressourcen des Containers, zu dem Sie das Element gezogen haben, eine neue CollectionViewSource hinzu. Dies CollectionViewSource ist ein Objekt, das zum Navigieren und Anzeigen der Daten im Objekt verwendet werden kann.
Erstellt eine Datenbindung für ein Steuerelement. Wenn Sie das Element in ein vorhandenes Steuerelement im Designer ziehen, bindet der XAML-Code das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt der XAML-Code das Steuerelement, das für das gezogene Element ausgewählt wurde, und bindet das Steuerelement an das Element. Das Steuerelement wird innerhalb eines neuen Grid erstellt.