Názorný postup: Vazba WPF ovládací prvky pro Data služby WCF
V tomto návodu vytvoří WPF aplikace, která obsahuje ovládací prvky vázané na data.Ovládací prvky jsou vázány na záznamy zákazníků, které jsou zapouzdřeny v WCF Data Service.Pokud přidáte tlačítka, Zákazníci můžete zobrazit a aktualizovat záznamy.
Tento návod ilustruje následující úkoly:
Vytvoření datový Model entita, která je generována z dat v ukázkové databázi AdventureWorksLT.
Vytváření WCF Data Service poskytuje data v datovém modelu entita WPF aplikace.
Vytváření sady ovládací prvky vázané na data přetažením položek z Zdroje dat okna WPF designer.
Vytvoření tlačítka vpřed a zpět procházet záznamy zákazníků.
Vytvoření tlačítka, který uloží změny dat v ovládacích prvcích na WCF Data Service a podkladový zdroj dat.
[!POZNÁMKA]
Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Požadavky
Chcete-li dokončit tento návod, potřebujete následující komponenty:
Visual Studio
Přístup k spuštěna instance serveru SQL Server nebo SQL Server Express s připojeným ukázkovou databázi AdventureWorksLT.Můžete stáhnout z databáze AdventureWorksLT webu CodePlex.
Předchozí znalosti těchto pojmů je také užitečné, ale nejsou vyžadovány dokončit návod:
Datové služby WCF.Další informace naleznete v tématu ADO.NET Data Services Framework Overview.
Datové modely v WCF Data Services.
Subjekt údajů modely a ADO.NET Entity Framework.Další informace naleznete v tématu Introducing the Entity Framework.
Práce s WPF designer.Další informace naleznete v tématu WPF a Silverlight Designer – přehled.
WPF datové vazby.Další informace naleznete v tématu Přehled vázání dat.
Vytvoření projektu služby
Vytvořením projektu pro spuštění tohoto postupu WCF Data Service.
Chcete-li vytvořit projekt služby
Spusťte aplikaci Visual Studio.
V nabídce File (Soubor) přejděte na příkaz New (Nový) a klepněte na příkaz Project (Projekt).
Rozbalte Visual C# nebo jazyka Visual Basica pak vyberte WWW.
Vyberte Webové aplikace šablona projektu.
V název zadejte AdventureWorksService a na OK.
Visual Studio vytvoří AdventureWorksService projektu.
V Aplikaci Solution Explorer, klepněte pravým tlačítkem na Default.aspx a vyberte Odstranit.Tento soubor není nutné v tomto návodu.
Vytvoření modelu dat Entity pro službu
Vystavit do aplikace pomocí WCF Data Service, je nutné definovat datový model služby.WCF Data Service Podporuje dva typy datových modelů: modely dat Entity a vlastních datových modelů, které jsou definovány pomocí běžných language runtime (CLR) objekty IQueryable<T> rozhraní.V tomto návodu vytvořit datový Model entita datového modelu.
Chcete-li vytvořit datový Model entita
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Klepněte v seznamu nainstalované šablony Dataa potom vyberte ADO.NET Entity datový Model položku projektu.
Změnit název na AdventureWorksModel.edmxa klepněte na tlačítko Přidat.
Průvodce modelu dat Entity otevře.
Na Zvolte obsah modelu klepněte na možnost Generovat z databázea klepněte na tlačítko Další.
Na Zvolte 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 ukázkové databázi AdventureWorksLT, vyberte jej.
-nebo-
Klepněte na tlačítko Nové připojení a vytvořit připojení k databázi AdventureWorksLT.
Na Zvolte datové připojení stránky, ujistěte se, že Uložit nastavení připojení entity v App.Config jako je vybrána možnost a klepněte na tlačítko Další.
Na Zvolte databázové objekty stránky, rozbalte položku tabuleka potom vyberte SalesOrderHeader tabulky.
Klepněte na tlačítko Dokončit.
Vytváření služby
Vytvoření WCF Data Service lze zobrazit data v datovém modelu entita WPF aplikace.
Vytvořit službu
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Klepněte v seznamu nainstalované šablony WWWa potom vyberte Data služby WCF položku projektu.
V název zadejte AdventureWorksService.svc a na Přidat.
Visual Studio, přidá AdventureWorksService.svc projektu.
Konfigurace služby
Nakonfigurujte službu provozovat vytvořený datový Model entita.
Konfigurace služby
V AdventureWorks.svc kód souboru, nahraďte AdventureWorksService prohlášení 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 třídy tak, aby je odvozeno z DataService<T> , pracuje AdventureWorksLTEntities objektu třídy kontextu v modelu dat Entity.Také aktualizuje InitializeService metoda umožňující klientům přístup k službě čtení/zápisu do SalesOrderHeader entity.
Vytvořte projekt a ověřte, že vytvoří bez chyb.
Vytváření klientských aplikací WPF
Chcete-li zobrazit data z WCF Data Service, vytvořit novou aplikaci WPF se zdrojem dat, který je založen na službě.Dále v tomto návodu přidáte ovládací prvky vázané na data do aplikace.
Vytvoření aplikace klient WPF
V Aplikaci Solution Explorer, klepněte pravým tlačítkem na uzel řešení, klepněte na tlačítko Přidata vyberte Nový projekt.
V Nový projekt dialog, rozbalte Visual C# nebo jazyka Visual Basica pak vyberte Windows.
Vyberte Aplikací WPF šablona projektu.
V název zadejte AdventureWorksSalesEditor a na OK.
Visual Studio, přidá AdventureWorksSalesEditor projektu řešení.
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.
Zdroje dat okno.
V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.
Otevře se Průvodce konfigurací zdroje dat.
V Vyberte typ zdroje dat stránce průvodce vyberte služby a klepněte na tlačítko Další.
V dialogovém okně Přidat odkaz na službu klikněte na položku Zjišťování.
Visual Studio hledá řešení pro dostupné služby a přidá AdventureWorksService.svc do seznamu dostupných služeb v služby pole.
V oboru názvů zadejte AdventureWorksService.
V služby klepněte na tlačítko AdventureWorksService.svc a klepněte na tlačítko OK.
Visual Studio stáhne informace služby a potom vrátí Průvodce konfigurací zdroje dat.
V Přidat odkaz na službu klepněte na možnost Dokončit.
Visual Studio přidá uzly, které představují data vrácená služby Zdroje dat okna.
Definování uživatelského rozhraní okna
Přidáte několik tlačítek okna úpravou XAML v WPF designer.Dále v tomto návodu můžete přidat kód, který umožňuje uživatelům zobrazit a aktualizovat prodejní záznamy pomocí těchto tlačítek.
Chcete-li vytvořit rozložení okna
V Aplikaci Solution Explorer, poklepejte na položku MainWindow.xaml.
Okno v WPF designer.
V XAML zobrazit návrháře, přidejte následující kód mezi <Grid> značky:
<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>
Projekt sestavte.
Vytváření ovládací prvky vázané na Data
Vytvořit ovládací prvky zobrazující záznamy zákazníků přetažením SalesOrderHeaders z uzlu Zdroje dat okna Návrhář.
Chcete-li vytvořit ovládací prvky vázané na data
V Zdroje dat okna, klepněte na rozevírací nabídku pro SalesOrderHeaders uzlu a vyberte Podrobnosti O.
Rozbalte SalesOrderHeaders uzel.
V tomto příkladu některá pole se nezobrazí, klepněte na tlačítko rozevírací nabídky u následujících uzlů a vyberte žádný:
CreditCardApprovalCode
ModifiedDate
OnlineOrderFlag
RevisionNumber
ROWGUID
Tato akce zabrání vytvoření ovládací prvky vázané na data pro tyto uzly v dalším kroku Visual Studio.Tohoto postupu se předpokládá, že uživatel nemusí zobrazit tato data.
Z Zdroje dat okna, přetáhněte SalesOrderHeaders uzel řádek mřížky pod řádkem, který obsahuje tlačítka.
Visual Studio generuje XAML a kód, který vytvoří sadu ovládacích prvků, které jsou vázány na data produkt tabulky.Další informace generované XAML a kódu Ovládací prvky WPF vazby na Data v aplikaci Visual Studio.
V návrháři, klepněte do textového pole vedle ID zákazníka popisek.
V Vlastnosti okně, zaškrtněte políčko vedle IsReadOnly vlastnost.
Nastavit IsReadOnly vlastnosti pro každý 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 proxy služby načíst data prodeje ze služby a vrácených dat přiřadit zdroj dat pro CollectionViewSource v okně WPF.
Načtení dat ze služby
V návrháři, poklepejte na text, který zní: MainWindow vytvořit Window_Loaded obslužnou rutinu události.
Následující kód nahraďte obslužnou rutinu události.Ujistěte se, že nahradí localhost adresa adresa místního hostitele ve vývojovém počítači v tomto kódu.
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í záznamů prodeje
Přidat kód, který umožňuje uživatelům procházet prodejní záznamy pomocí < a > tlačítka.
Povolit uživatelům procházet záznamů o prodeji
V návrháři, poklepejte < na povrchu okna na tlačítko.
Visual Studio otevře soubor s kódem na pozadí a vytvoří nový backButton_Click obslužnou rutinu události pro Click událostí.
Přidejte následující kód vytvořené backButton_Click obslužné rutiny události:
If OrdersViewSource.View.CurrentPosition > 0 Then OrdersViewSource.View.MoveCurrentToPrevious() End If
if (ordersViewSource.View.CurrentPosition > 0) ordersViewSource.View.MoveCurrentToPrevious();
Vrátit Návrhář a poklepejte na položku > tlačítko.
Visual Studio otevře soubor s kódem na pozadí a vytvoří nový nextButton_Click obslužnou rutinu události pro Click událostí.
Přidejte následující kód vytvořené nextButton_Click obslužné rutiny 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(); }
Uložení změn do prodeje záznamy
Přidat kód, který umožňuje uživatelům zobrazit a uložit změny pomocí záznamů o prodeji Uložit změny tlačítko.
Chcete-li přidat možnost uložit změny záznamů o prodeji
V návrháři, poklepejte Uložit změny tlačítko.
Visual Studio otevře soubor s kódem na pozadí a vytvoří nový saveButton_Click obslužnou rutinu události pro Click událostí.
Přidejte následující kód 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 ověřit zobrazit a aktualizovat záznamy zákazníků.
Testování aplikace
Na sestavení nabídky, klepněte na tlačítko Sestavit řešení.Ověřte, že vytvoří řešení bez chyb.
Stiskněte klávesu CTRL + F5.
Spustí se aplikace Visual Studio AdventureWorksService projektu bez ladění.
V Aplikaci Solution Explorer, klepněte pravým tlačítkem myši AdventureWorksSalesEditor projektu.
V místní nabídce pod ladění, klepněte na tlačítko spuštění nové instance.
Aplikace bude spuštěna.Zkontrolujte následující:
Textová pole zobrazit různá pole dat z prvního prodeje záznamu, který má ID prodejní objednávky 71774.
Klepnutím > nebo < tlačítka Procházet jiné prodejní záznamy.
V jednom z prodejních záznamů zadejte nějaký text v Komentář a klepněte na tlačítko Uložit změny.
Ukončete aplikaci a spusťte znovu aplikaci ze sady Visual Studio.
Přejděte k prodejní záznamu, který jste změnili a ověřte, že změna přetrvává i po zavření a opětovném otevření aplikace.
Ukončete aplikaci.
Další kroky
Po dokončení tohoto postupu, můžete provádět následující související úkoly:
Naučte se používat Zdroje dat okna v aplikaci Visual Studio WPF svázat ovládací prvky na jiné typy zdrojů dat.Další informace naleznete v tématu Názorný postup: Vazba na datový Model entita WPF ovládací prvky a Názorný postup: Vazba WPF ovládací prvky k objektu Dataset.
Naučte se používat Zdroje dat okna v aplikaci Visual Studio k zobrazení souvisejících dat (data, ve vztahu nadřazený podřízený) WPF ovládacích prvků.Další informace naleznete v tématu Názorný postup: Zobrazení souvisejících dat aplikací WPF.
Viz také
Úkoly
Jak: WPF ovládací prvky vázat na Data v aplikaci Visual Studio
Názorný postup: Vazba na datový Model entita WPF ovládací prvky
Názorný postup: Vazba WPF ovládací prvky k objektu Dataset
Koncepty
Ovládací prvky WPF vazby na Data v aplikaci Visual Studio
WPF a Silverlight Designer – přehled