Návod: Vytvoření vazby ovládacích prvků WPF služby WCF Data Service
V tomto návodu vytvoříte aplikaci WPF, která obsahuje data vázané ovládací prvky.Ovládací prvky je vázána na záznamy zákazníků, které jsou zapouzdřena v WCF Data Service.Pokud přidáte tlačítka, která zákazníci mohou používat k zobrazení a aktualizovat záznamy.
Tento návod znázorňuje následující úlohy:
Vytvoření datového modelu Entity, která je generována z dat z ukázkové databáze AdventureWorksLT.
Vytváření WCF Data Service která zveřejňuje data v datovém modelu Entity do aplikace WPF.
Vytvoření sadu ovládacích prvků vázaných na data přetažením položek z zdroje dat okna Návrháře WPF.
Vytvoření tlačítka, která vpřed a zpět procházet záznamy zákazníků.
Vytváření tlačítko, které uloží změny do data v ovládací prvky WCF Data Service a základní zdroj dat.
[!POZNÁMKA]
Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.
Požadavky
K dokončení tohoto návodu budete potřebovat následující komponenty:
Visual Studio
Přístup ke spuštěné instanci serveru SQL Server nebo SQL Server Express, který má ukázkové databáze AdventureWorksLT připojena k němu.Můžete stáhnout z databáze AdventureWorksLT webu CodePlex.
Předchozí znalosti následující koncepty je rovněž užitečný, ale nejsou vyžadovány k dokončení návodu:
WCF Data Services.Další informace naleznete v tématu WCF Data Services Overview.
Datové modely v WCF Data Services.
Entity datové modely a rozhraní ADO.NET Entity Framework.Další informace naleznete v tématu Entity Framework Overview.
Práce s návrháři WPF.Další informace naleznete v tématu Přehled Návrháře WPF.
Použití rozhraní WPF datové vazby.Další informace naleznete v tématu Přehled datových vazeb.
Vytváření projektu služby
Vytvořením projektu pro spuštění tohoto průvodce WCF Data Service.
Chcete-li vytvořit projekt služby
Spusťte aplikaci Visual Studio.
V nabídce Soubor přejděte na příkaz Nový a klikněte na Projekt.
Rozbalte položku Visual C# nebo jazyka Visual Basic, a potom vyberte webové.
Vyberte webové aplikace ASP.NET šablona projektu.
V název zadejte AdventureWorksService a klikněte na tlačítko OK.
Sada Visual Studio vytvoří AdventureWorksService projektu.
V Průzkumníka řešení, klikněte pravým tlačítkem na Default.aspx a vyberte možnost Odstranit.Tento soubor není nutné v tomto návodu.
Vytvoření datového modelu Entity pro službu
K přímému dat do aplikace s použitím WCF Data Service, je nutné definovat datový model pro službu. WCF Data Service Podporuje dva typy datové modely: Entity datové modely a vlastní datové modely, které jsou definovány za použití common language runtime (CLR) objekty, které implementují IQueryable rozhraní.V tomto návodu vytvoříte datového modelu Entity datového modelu.
Chcete-li vytvořit datového modelu Entity
Na projektu nabídky, klikněte na tlačítko Přidat novou položku.
V seznamu nainstalovaných šablonách, klikněte na tlačítko Data, a potom vyberte datový Model Entity ADO.NET položku projektu.
Změnit název, který má AdventureWorksModel.edmx, a klikněte na tlačítko Přidat.
Entity Data Model Wizard otevře.
Na zvolit obsah modelu klikněte na tlačítko Generovat z databáze, a klikněte na tlačítko Další.
Na Vybrat datové připojení stránky, vyberte jednu z následujících možností:
Pokud je k dispozici v rozevíracím seznamu datové připojení k databázi AdventureWorksLT ukázky, vyberte jej.
-nebo-
Klikněte na tlačítko nové připojení a umožňuje vytvořit připojení k databázi AdventureWorksLT.
Na Vybrat datové připojení stránky, ujistěte se, že Uložit nastavení připojení entity v App.Config jako možnost je vybrána a potom klikněte na tlačítko Další.
Na Zvolte vaše databázové objekty stránky, rozbalte položku tabulky, a potom vyberte SalesOrderHeader tabulky.
Klepněte na tlačítko Dokončit.
Vytvoření služby
Vytvořit WCF Data Service k zobrazení dat v datovém modelu Entity do aplikace WPF.
Chcete-li vytvořit službu
Na projektu klepněte na příkaz Přidat novou položku.
V seznamu nainstalovaných šablonách, klikněte na tlačítko webové, a potom vyberte datová služba WCF položku projektu.
V název zadejte AdventureWorksService.svc a klikněte na tlačítko Přidat.
Visual Studio přidá AdventureWorksService.svc do projektu.
Probíhá konfigurace služby
Je nutné nakonfigurovat službu k provozu na datový Model Entity, který jste vytvořili.
Konfigurace služby
V AdventureWorks.svc kódu souboru, nahradí AdventureWorksService deklarace s následujícím kódem třídy.
Public Class AdventureWorksService Inherits DataService(Of AdventureWorksLTEntities) ' This method is called only once to initialize service-wide policies. Public Shared Sub InitializeService(ByVal config As IDataServiceConfiguration) config.SetEntitySetAccessRule("SalesOrderHeaders", EntitySetRights.All) config.UseVerboseErrors = True End Sub End Class
public class AdventureWorksService : DataService<AdventureWorksLTEntities> { // This method is called only once to initialize service-wide policies. public static void InitializeService(IDataServiceConfiguration config) { config.SetEntitySetAccessRule("SalesOrderHeaders", EntitySetRights.All); } }
Aktualizuje tento kód AdventureWorksService tak, aby je odvozen od třídy DataService bude pracovat AdventureWorksLTEntities Třída kontextu ve vaší datového modelu Entity objektu.Také aktualizuje InitializeService metody, které chcete, aby klienti přístup k službě Úplné čtení a zápis do SalesOrderHeader entity.
Sestavte projekt a ověřte, že sestaví bez chyb.
Vytváření klientské aplikace WPF
Chcete-li zobrazit data z WCF Data Service, vytvoření nové aplikace WPF ke zdroji dat, který je založen na službu.Dále v tomto návodu přidáte ovládací prvky vázání dat do aplikace.
Chcete-li vytvořit klientskou aplikaci WPF
V Průzkumníka řešení, klikněte pravým tlačítkem na uzel řešení, klikněte na tlačítko Přidat, a vyberte možnost Nový projekt.
V Nový projekt dialogové okno, rozbalte položku Visual C# nebo jazyka Visual Basic, a potom vyberte Windows.
Vyberte aplikace WPF šablona projektu.
V název zadejte AdventureWorksSalesEditor a klikněte na tlačítko OK.
Visual Studio přidá AdventureWorksSalesEditor projekt do řešení.
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.
Zdroje dat otevře se okno.
V zdroje dat okna, klikněte na tlačítko Přidat nový zdroj dat.
Otevře se Průvodce konfigurací zdroje dat.
V Zvolte typ zdroje dat stránku průvodce, vyberte možnost služby a potom klikněte na tlačítko Další.
V Přidat odkaz na službu dialogového okna, klikněte na tlačítko Discover.
Visual Studio vyhledá aktuálním řešení pro dostupných služeb a přidá AdventureWorksService.svc do seznamu dostupných služeb v služby pole.
V obor názvů zadejte AdventureWorksService.
V služby klikněte na tlačítko AdventureWorksService.svc a potom klikněte na tlačítko OK.
Soubory ke stažení pro informace o službě Visual Studio a potom vrátí Průvodce konfigurací zdroje dat.
V Přidat odkaz na službu klikněte na tlačítko Dokončit.
Visual Studio přidá uzly, které představují data vrácená službu, aby zdroje dat okna.
Definování uživatelského rozhraní okna
Přidáte několik tlačítek do okna úpravou XAML v Návrháři WPF.Dále v tomto návodu přidáte kód, který umožňuje uživatelům zobrazit a aktualizovat prodejní záznamů pomocí těchto tlačítek.
Chcete-li vytvořit rozložení okna
V Průzkumníka řešení, dvakrát klikněte na položku MainWindow.xaml.
Otevře se okno v Návrháři WPF.
V XAML Zobrazit návrháře, přidejte následující kód mezi <Grid> klíčová slova:
<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="525" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
Sestavte projekt.
Vytváření ovládacích prvků vázaných na Data
Vytvořit ovládací prvky, které zobrazují záznamy zákazníka přetažením SalesOrderHeaders uzlu z zdroje dat okna návrháře.
Chcete-li vytvořit ovládací prvky vázání dat
V zdroje dat okna, klepněte na rozevírací nabídku pro SalesOrderHeaders uzel a vyberte Podrobnosti.
Rozbalit SalesOrderHeaders uzlu.
V tomto příkladu některá pole se nezobrazí tak klepněte na rozevírací nabídku vedle následující uzly a vyberte možnost žádný:
CreditCardApprovalCode
ModifiedDate
OnlineOrderFlag
RevisionNumber
ROWGUID
Tato akce zabrání vytváření ovládacích prvků vázaných na data pro tyto uzly v dalším kroku sady Visual Studio.V tomto návodu se předpokládá, že koncový uživatel nemusí zobrazíte tato data.
Z zdroje dat okna, přetáhněte SalesOrderHeaders uzel pro řádek tabulky pod řádek, který obsahuje tlačítka.
Generuje sada Visual Studio, XAML a kód, který vytvoří sadu ovládacích prvků, které jsou svázány s daty v produktu tabulky.Další informace o generovaného XAML a kódu, naleznete v části Vázání ovládacích prvků WPF k datům v sadě Visual Studio.
V návrháři, klepněte na textové pole vedle ID zákazníka popisku.
V Vlastnosti okna, vyberte zaškrtávací políčko vedle IsReadOnly vlastnost.
Nastavte IsReadOnly vlastnost pro každou z následujících textových polí:
Číslo nákupní objednávky
ID prodejní objednávky
Číslo prodejní objednávky
Načtení dat ze služby
Pomocí objektu služby proxy serveru načíst prodejní data ze služby a potom přiřadit zdroj dat pro data vrácená CollectionViewSource v okně WPF.
Načtení dat ze služby
V návrháři, poklepejte na text, který čte: MainWindow Chcete-li vytvořit Window_Loaded obslužnou rutinu události.
Nahraďte obslužnou rutinu události s následujícím kódem.Ujistěte se, že nahradíte localhost adres v tomto kódu s adresou místního hostitele ve svém vývojovém počítači.
Private DataServiceClient As AdventureWorksService.AdventureWorksLTEntities Private SalesQuery As System.Data.Services.Client.DataServiceQuery(Of AdventureWorksService.SalesOrderHeader) Private OrdersViewSource As CollectionViewSource Private Sub Window_Loaded(ByVal Sender As Object, ByVal e As RoutedEventArgs) Handles MyBase.Loaded ' TODO: Modify the port number in the following URI as required. DataServiceClient = New AdventureWorksService.AdventureWorksLTEntities( _ New Uri("https://localhost:32415/AdventureWorksService.svc")) SalesQuery = DataServiceClient.SalesOrderHeaders OrdersViewSource = CType(Me.FindResource("SalesOrderHeadersViewSource"), CollectionViewSource) OrdersViewSource.Source = SalesQuery.Execute() OrdersViewSource.View.MoveCurrentToFirst() End Sub
private AdventureWorksService.AdventureWorksLTEntities dataServiceClient; private System.Data.Services.Client.DataServiceQuery<AdventureWorksService.SalesOrderHeader> salesQuery; private CollectionViewSource ordersViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { // TODO: Modify the port number in the following URI as required. dataServiceClient = new AdventureWorksService.AdventureWorksLTEntities( new Uri("https://localhost:45899/AdventureWorksService.svc")); salesQuery = dataServiceClient.SalesOrderHeaders; ordersViewSource = ((CollectionViewSource)(this.FindResource("salesOrderHeadersViewSource"))); ordersViewSource.Source = salesQuery.Execute(); ordersViewSource.View.MoveCurrentToFirst(); }
Procházení prodejní záznamů
Přidejte kód, který umožňuje uživatelům procházet prodejní záznamů pomocí < a > tlačítka.
Chcete-li povolit uživatelům procházet prodejní záznamů
V návrháři, klikněte dvakrát < tlačítko na ploše okna.
Visual Studio otevře soubor kódu a vytvoří nový backButton_Click obslužnou rutinu pro Click události.
Přidejte následující kód generovaný objekt backButton_Click obslužnou rutinu události:
If OrdersViewSource.View.CurrentPosition > 0 Then OrdersViewSource.View.MoveCurrentToPrevious() End If
if (ordersViewSource.View.CurrentPosition > 0) ordersViewSource.View.MoveCurrentToPrevious();
Vrátit k Návrháři a dvojitým kliknutím > tlačítko.
Visual Studio otevře soubor kódu a vytvoří nový nextButton_Click obslužnou rutinu pro Click události.
Přidejte následující kód generovaný objekt nextButton_Click obslužnou rutinu události:
If OrdersViewSource.View.CurrentPosition < CType(OrdersViewSource.View, CollectionView).Count - 1 Then OrdersViewSource.View.MoveCurrentToNext() End If
if (ordersViewSource.View.CurrentPosition < ((CollectionView)ordersViewSource.View).Count - 1) { ordersViewSource.View.MoveCurrentToNext(); }
Ukládání změn na prodejní záznamů
Přidejte kód, který umožňuje uživatelům zobrazit i uložit změny do prodejní záznamů pomocí Uložit změny tlačítko.
Chcete-li přidat možnost uložit změny do záznamů o prodeji
V návrháři, klikněte dvakrát Uložit změny tlačítko.
Visual Studio otevře soubor kódu a vytvoří nový saveButton_Click obslužnou rutinu pro Click události.
Přidat následující kód, který saveButton_Click obslužnou rutinu události.
Dim CurrentOrder As AdventureWorksService.SalesOrderHeader = CType(OrdersViewSource.View.CurrentItem, AdventureWorksService.SalesOrderHeader) DataServiceClient.UpdateObject(CurrentOrder) DataServiceClient.SaveChanges()
AdventureWorksService.SalesOrderHeader currentOrder = (AdventureWorksService.SalesOrderHeader)ordersViewSource.View.CurrentItem; dataServiceClient.UpdateObject(currentOrder); dataServiceClient.SaveChanges();
Testování aplikace
Vytvořit a spustit aplikaci tak, aby ověřte, zda lze zobrazit a aktualizovat záznamy zákazníků.
Testování aplikace
Na sestavení nabídky, klikněte na tlačítko Sestavit řešení.Ověřte, že řešení sestaví bez chyb.
Stiskněte klávesu kombinaci kláves CTRL + F5.
Visual Studio spustí AdventureWorksService projekt bez ladění.
V Průzkumníka řešení, klikněte pravým tlačítkem myši AdventureWorksSalesEditor projektu.
V místní nabídce v části ladění, klikněte na tlačítko Start novou instanci.
Spuštění aplikace.Ověřte následující informace:
Textová pole zobrazit různá pole dat z první prodejní záznam, který má ID prodejní objednávky 71774.
Po klepnutí > nebo < tlačítek můžete procházet pomocí jiné prodejní záznamy.
V jednom z prodejní záznamy, zadejte část textu v komentář a klepněte na tlačítko Uložit změny.
Ukončete aplikaci a potom znovu spusťte aplikaci ze sady Visual Studio.
Přejít na prodejní záznam, který jste změnili a ověřte, že změna ukládá po zavřít a znovu otevřít aplikaci.
Ukončete aplikaci.
Další kroky
Po dokončení tohoto průvodce, můžete provádět následující úlohy související:
Naučte se používat zdroje dat okna v sadě Visual Studio pro vytvoření vazby WPF ovládací prvky na jiné typy zdrojů dat.Další informace naleznete v tématu Návod: Vytvoření vazby ovládacích prvků WPF k datové sadě.
Naučte se používat zdroje dat okna v sadě Visual Studio pro zobrazení souvisejících dat (to znamená, že data v relaci nadřazený podřízený) v ovládacích prvků WPF.Další informace naleznete v tématu Návod: Zobrazování souvisejících dat v aplikaci WPF.
Viz také
Úkoly
Postupy: Vytvoření vazby ovládacích prvků WPF k datům v sadě Visual Studio
Návod: Vytvoření vazby ovládacích prvků WPF k datové sadě
Koncepty
Vázání ovládacích prvků WPF k datům v sadě Visual Studio