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. |
|
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 Benutzeroberfläche-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 Benutzeroberfläche-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.
Hinweis |
---|
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