Binden von WPF-Steuerelementen an Daten in Visual Studio

Sie können Daten für Benutzer der Anwendung anzeigen, indem Sie Daten an WPF-Steuerelemente binden. Um die datengebundenen Steuerelemente zu erstellen, können Sie Elemente aus dem Datenquellenfenster in den WPF-Designer in Visual Studio ziehen. In diesem Thema werden einige der häufigsten 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 über WPF-Datenbindung finden Sie unter Übersicht über Datenbindung.

Aufgaben beim Binden von WPF-Steuerelementen an Daten

In der folgenden Tabelle werden die Aufgaben aufgeführt, die durch Ziehen von Elementen aus dem Datenquellenfenster in den WPF-Designer ausgeführt werden können.

Aufgabe

Weitere Informationen

Erstellen von neuen datengebundenen Steuerelementen

Binden von vorhandenen Steuerelementen an Daten

Gewusst wie: Binden von WPF-Steuerelementen an Daten in Visual Studio

Erstellen von Steuerelementen, die verknüpfte Daten in Beziehungen zwischen übergeordneten und untergeordneten Elementen anzeigen: Wenn der Benutzer einen übergeordneten Datensatz in einem Steuerelement auswählt, werden in einem anderen Steuerelement verknüpfte untergeordnete Daten für den ausgewählten Datensatz angezeigt.

Gewusst wie: Anzeigen verknüpfter Daten in WPF-Anwendungen

Erstellen einer Nachschlagetabelle, in der Informationen aus einer Tabelle auf der Grundlage des Werts eines Fremdschlüsselfelds in einer anderen Tabelle angezeigt werden

Gewusst wie: Erstellen von Nachschlagetabellen in WPF-Anwendungen

Binden eines Steuerelements an ein Bild in einer Datenbank

Gewusst wie: Binden von Steuerelementen an Bilder aus einer Datenbank

Gültige Ablageziele

Sie können Elemente im Datenquellenfenster nur auf gültige Ablageziele im WPF-Designer ziehen. Es gibt zwei Hauptarten von gültigen Ablagezielen: Container und Steuerelemente. Ein Container ist ein Benutzeroberflächenelement, das in der Regel Steuerelemente enthält. Beispielsweise handelt es sich bei Rastern und Fenstern um Container.

Generiertes XAML und generierter 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 Code-Behind-Datei, der die Datenquelle mit Daten füllt.

In der folgenden Tabelle werden XAML und Code aufgeführt, die von Visual Studio für die einzelnen Typen von Datenquellen im Datenquellenfenster generiert werden.

Datenquelle

Generieren von XAML, das ein Steuerelement an die Datenquelle bindet

Generieren von Code, der die Datenquelle mit Daten füllt

DataSet

Ja

Ja

Entity Data Model

Ja

Ja

Dienst

Ja

Nein

Objekt

Ja

Nein

Datasets

Wenn Sie eine Tabelle oder eine Spalte 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, werden das Dataset und eine neue CollectionViewSource hinzugefügt. Die CollectionViewSource ist ein Objekt, das verwendet werden kann, um in den Daten des Datasets zu navigieren und diese anzuzeigen.

  • Es wird eine Datenbindung für ein Steuerelement erstellt. Wenn Sie das Element auf ein vorhandenes Steuerelement im Designer ziehen, bindet das XAML das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt das XAML 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 Code-Behind-Datei vor:

  • Es wird ein Loaded-Ereignishandler für das UI-Element erstellt, das das Steuerelement enthält. Der Ereignishandler füllt die Tabelle mit Daten, ruft die CollectionViewSource aus den Ressourcen des Containers ab, und legt dann das erste Datenelement als aktuelles Element fest. Wenn bereits ein Loaded-Ereignishandler vorhanden ist, fügt Visual Studio dem vorhandenen Ereignishandler diesen Code hinzu.

Entity Data Models

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. Die CollectionViewSource ist ein Objekt, das verwendet werden kann, um in den Daten der Entität zu navigieren und diese anzuzeigen.

  • Es wird eine Datenbindung für ein Steuerelement erstellt. Wenn Sie das Element auf ein vorhandenes Steuerelement im Designer ziehen, bindet das XAML das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt das XAML 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 Code-Behind-Datei vor:

  • Es wird eine neue Methode hinzugefügt, die eine Abfrage für die Entität zurückgibt, die Sie in den Designer gezogen haben (oder für die Entität, die die Eigenschaft enthält, die Sie in den Designer gezogen haben). Der Name der neuen Methode lautet GetEntitätsnameQuery, wobei Entitätsname der Name der Entität ist.

  • Es wird ein Loaded-Ereignishandler für das UI-Element erstellt, das das Steuerelement enthält. Der Ereignishandler ruft die GetEntitätsnameQuery-Methode auf, um die Entität mit Daten zu füllen, ruft die CollectionViewSource aus den Ressourcen des Containers ab, und legt dann das erste Datenelement als aktuelles Element fest. Wenn bereits ein Loaded-Ereignishandler vorhanden ist, fügt Visual Studio dem vorhandenen Ereignishandler diesen Code hinzu.

Dienste

Wenn Sie ein Dienstobjekt oder eine Diensteigenschaft aus dem Datenquellenfenster in den Designer ziehen, generiert Visual Studio XAML, das ein datengebundenes Steuerelement erstellt (oder ein vorhandenes Steuerelement an das Objekt bzw. die Eigenschaft bindet). Visual Studio generiert jedoch keinen Code, der das Proxydienstobjekt mit Daten füllt. Sie müssen diesen Code selbst schreiben. Ein Beispiel, das die Vorgehensweise veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Binden von WPF-Steuerelementen an einen WCF-Datendienst.

Visual Studio generiert XAML, das folgende Aktionen ausführt:

  • Den Ressourcen des Containers, in den Sie das Element gezogen haben, wird eine neue CollectionViewSource hinzugefügt. Die CollectionViewSource ist ein Objekt, das verwendet werden kann, um in den Daten des von dem Dienst zurückgegebenen Objekts zu navigieren und diese anzuzeigen.

  • Es wird eine Datenbindung für ein Steuerelement erstellt. Wenn Sie das Element auf ein vorhandenes Steuerelement im Designer ziehen, bindet das XAML das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt das XAML 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 bzw. die Eigenschaft bindet). Visual Studio generiert jedoch keinen Code, um das Objekt mit Daten zu füllen. Sie müssen diesen Code selbst schreiben.

Tipp

Benutzerdefinierte Klassen müssen öffentlich sein und über einen parameterlosen öffentlichen Standardkonstruktor verfügen. Sie können nicht als geschachtelte Klassen mit einem 'Punkt' in der Syntax definiert werden. Weitere Informationen finden Sie unter XAML- und benutzerdefinierte Klassen für WPF.

Visual Studio generiert XAML, das folgende Aktionen ausführt:

  • Den Ressourcen des Containers, in den Sie das Element gezogen haben, wird eine neue CollectionViewSource hinzugefügt. Die CollectionViewSource ist ein Objekt, das verwendet werden kann, um in den Daten des Objekt zu navigieren und diese anzuzeigen.

  • Es wird eine Datenbindung für ein Steuerelement erstellt. Wenn Sie das Element auf ein vorhandenes Steuerelement im Designer ziehen, bindet das XAML das Steuerelement an das Element. Wenn Sie das Element in einen Container ziehen, erstellt das XAML 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.

Siehe auch

Aufgaben

Gewusst wie: Binden von WPF-Steuerelementen an Daten in Visual Studio

Gewusst wie: Erstellen von Nachschlagetabellen in WPF-Anwendungen

Gewusst wie: Anzeigen verknüpfter Daten in WPF-Anwendungen

Exemplarische Vorgehensweise: Binden von WPF-Steuerelementen an ein Entity Data Model

Exemplarische Vorgehensweise: Binden von WPF-Steuerelementen an ein Dataset

Exemplarische Vorgehensweise: Binden von WPF-Steuerelementen an einen WCF-Datendienst

Exemplarische Vorgehensweise: Anzeigen verknüpfter Daten in einer WPF-Anwendung

Referenz

Datenquellenfenster

Konzepte

Übersicht über Datenquellen