Exemplarische Vorgehensweise: Anzeigen verknüpfter Daten in einer WPF-Anwendung
Erstellen einer WPF-Anwendung und eines Entity Data Model, das aus den Daten in der Beispieldatenbank AdventureWorksLT generiert wird. Erstellen eines Satzes von datengebundenen Steuerelementen, die Übersichtsinformationen für eine Gruppe von Aufträgen anzeigen. Sie erstellen die Steuerelemente, indem Sie eine übergeordnete Entität aus dem Datenquellenfenster in den WPF-Designer ziehen. Erstellen eines DataGrid-Steuerelements, das Details für jeden ausgewählten Auftrag anzeigt. Sie erstellen die Steuerelemente, indem Sie eine untergeordnete Entität aus dem Datenquellenfenster in ein Fenster im WPF-Designer ziehen.
HinweisAuf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Visual Studio 2010. Zugriff auf eine gegenwärtig ausgeführte Instanz von SQL Server oder SQL Server Express, die mit der AdventureWorksLT-Beispieldatenbank verknüpft ist. Sie können die AdventureWorksLT-Datenbank von der CodePlex-Website herunterladen.
Entity Data Models und ADO.NET Entity Framework. Weitere Informationen finden Sie unter Entity Data Model und Introducing the Entity Framework. Arbeiten mit dem WPF-Designer. Weitere Informationen finden Sie unter Übersicht über den WPF- und Silverlight-Designer. WPF-Datenbindung. Weitere Informationen finden Sie unter Übersicht über Datenbindung.
So erstellen Sie ein neues WPF-Projekt
Starten Sie Visual Studio. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt. Erweitern Sie Visual C# oder Visual Basic, und wählen Sie dann Windows aus. Stellen Sie sicher, dass im Kombinationsfeld am oberen Rand des Dialogfelds .NET Framework 4 ausgewählt ist. Das DataGrid-Steuerelement, das Sie in dieser exemplarischen Vorgehensweise verwenden, ist nur in .NET Framework 4 verfügbar. Wählen Sie die Projektvorlage WPF-Anwendung aus. Geben Sie im Feld Name Folgendes ein: AdventureWorksOrdersViewer. Klicken Sie auf OK. Visual Studio erstellt das Projekt AdventureWorksOrdersViewer.
So erstellen Sie ein Entity Data Model
Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen, um den Assistenten zum Konfigurieren von Datenquellen zu öffnen. Klicken Sie auf der Seite Datenquellentyp auswählen nacheinander auf Datenbank und dann auf Weiter. Klicken Sie auf der Seite Wählen Sie ein Datenbankmodell aus auf Entity Data Model und dann auf Weiter. Klicken Sie auf der Seite Modellinhalt auswählen auf Aus Datenbank generieren und dann auf Weiter. Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung aus einen der folgenden Schritte aus: Wenn in der Dropdownliste eine Datenverbindung mit der AdventureWorksLT-Beispieldatenbank verfügbar ist, wählen Sie diese aus. – oder – Klicken Sie auf Neue Verbindung, und erstellen Sie eine Verbindung mit der AdventureWorksLT-Datenbank.
Stellen Sie sicher, dass die Option Speichern Sie die Entitätsverbindungseinstellungen in App.Config als aktiviert ist, und klicken Sie dann auf Weiter. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, und wählen Sie dann die folgenden Tabellen aus: SalesOrderDetail
SalesOrderHeader
Klicken Sie auf Fertig stellen. Erstellen Sie das Projekt.
So erstellen Sie datengebundene Steuerelemente, die Auftragsdatensätze anzeigen
Doppelklicken Sie im Projektmappen-Explorer auf MainWindow.xaml. Das Fenster wird im WPF-Designer geöffnet. Bearbeiten Sie das XAML, um die Eigenschaften Höhe und Breite auf 800 festzulegen. Klicken Sie im Datenquellenfenster auf das Dropdownmenü für den Knoten SalesOrderHeaders, und wählen Sie Details aus. Erweitern Sie den Knoten SalesOrderHeaders. Klicken Sie auf das Dropdownmenü neben SalesOrderID, und wählen Sie ComboBox aus. Klicken Sie für jeden der folgenden untergeordneten Knoten des Knotens SalesOrderHeaders auf das Dropdownmenü neben dem Knoten, und wählen Sie Keine aus: RevisionNumber
OnlineOrderFlag
ShipToAddressID
BillToAddressID
CreditCardApprovalCode
SubTotal
TaxAmt
Freight
rowguid
ModifiedDate
Diese Aktion verhindert, dass Visual Studio im nächsten Schritt datengebundene Steuerelemente für diese Knoten erstellt. Bei dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass diese Daten dem Endbenutzer nicht angezeigt werden müssen. Ziehen Sie den Knoten SalesOrderHeaders aus dem Datenquellenfenster in das Fenster im WPF-Designer. Visual Studio generiert XAML, das einen Satz von Steuerelementen erstellt, die an Daten in der Entität SalesOrderHeaders gebunden werden, und Code, der die Daten lädt. Weitere Informationen zum generierten XAML und Code finden Sie unter Binden von WPF-Steuerelementen an Daten in Visual Studio. Klicken Sie im Designer auf das Kombinationsfeld neben der Bezeichnung Sales Order ID. Aktivieren Sie im Fenster Eigenschaften das Kontrollkästchen neben der IsReadOnly-Eigenschaft.
So erstellen Sie ein DataGrid, das die Auftragsdetails anzeigt
Suchen Sie im Datenquellenfenster den Knoten SalesOrderDetails, der ein untergeordnetes Element des Knotens SalesOrderHeaders ist.
HinweisEs ist auch ein Knoten mit dem Namen SalesOrderDetails vorhanden, der ein nebengeordneter Knoten von SalesOrderHeaders ist. Stellen Sie sicher, dass Sie den untergeordneten Knoten des Knotens SalesOrderHeaders auswählen. Erweitern Sie den untergeordneten Knoten SalesOrderDetails. Klicken Sie für jeden der folgenden untergeordneten Knoten des Knotens SalesOrderDetails auf das Dropdownmenü neben dem Knoten, und wählen Sie Keine aus: SalesOrderID
SalesOrderDetailID
rowguid
ModifiedDate
Diese Aktion verhindert, dass Visual Studio diese Daten in das DataGrid-Steuerelement einschließt, das Sie im nächsten Schritt erstellen. Bei dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass diese Daten dem Endbenutzer nicht angezeigt werden müssen. Ziehen Sie den untergeordneten Knoten SalesOrderDetails aus dem Datenquellenfenster in das Fenster im WPF-Designer. Visual Studio generiert XAML, um ein neues datengebundenes DataGrid-Steuerelement zu definieren, und das Steuerelement wird im Designer angezeigt. Visual Studio aktualisiert außerdem die generierte GetSalesOrderHeadersQuery-Methode in der Code-Behind-Datei, um die Daten in die Entität SalesOrderDetails einzuschließen.
So testen Sie die Anwendung
Drücken Sie F5. Die Anwendung wird erstellt und ausgeführt. Überprüfen Sie Folgendes: Im Kombinationsfeld Sales Order ID wird 71774 angezeigt. Dies ist die erste Auftrags-ID in der Entität. Für jeden Auftrag, den Sie im Kombinationsfeld Sales Order ID auswählen, werden im DataGrid detaillierte Auftragsinformationen angezeigt.
Schließen Sie die Anwendung.