Sdílet prostřednictvím


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:

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

  1. Spusťte aplikaci Visual Studio.

  2. V nabídce File (Soubor) přejděte na příkaz New (Nový) a klepněte na příkaz Project (Projekt).

  3. Rozbalte Visual C# nebo jazyka Visual Basica pak vyberte WWW.

  4. Vyberte Webové aplikace šablona projektu.

  5. V název zadejte AdventureWorksService a na OK.

    Visual Studio vytvoří AdventureWorksService projektu.

  6. 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

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

  2. Klepněte v seznamu nainstalované šablony Dataa potom vyberte ADO.NET Entity datový Model položku projektu.

  3. Změnit název na AdventureWorksModel.edmxa klepněte na tlačítko Přidat.

    Průvodce modelu dat Entity otevře.

  4. Na Zvolte obsah modelu klepněte na možnost Generovat z databázea klepněte na tlačítko Další.

  5. 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.

  6. 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ší.

  7. Na Zvolte databázové objekty stránky, rozbalte položku tabuleka potom vyberte SalesOrderHeader tabulky.

  8. 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

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

  2. Klepněte v seznamu nainstalované šablony WWWa potom vyberte Data služby WCF položku projektu.

  3. 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

  1. 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.

  2. 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

  1. V Aplikaci Solution Explorer, klepněte pravým tlačítkem na uzel řešení, klepněte na tlačítko Přidata vyberte Nový projekt.

  2. V Nový projekt dialog, rozbalte Visual C# nebo jazyka Visual Basica pak vyberte Windows.

  3. Vyberte Aplikací WPF šablona projektu.

  4. V název zadejte AdventureWorksSalesEditor a na OK.

    Visual Studio, přidá AdventureWorksSalesEditor projektu řešení.

  5. V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.

    Zdroje dat okno.

  6. V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.

    Otevře se Průvodce konfigurací zdroje dat.

  7. V Vyberte typ zdroje dat stránce průvodce vyberte služby a klepněte na tlačítko Další.

  8. 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.

  9. V oboru názvů zadejte AdventureWorksService.

  10. 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.

  11. 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

  1. V Aplikaci Solution Explorer, poklepejte na položku MainWindow.xaml.

    Okno v WPF designer.

  2. 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">&lt;</Button>
    <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">&gt;</Button>
    <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
    
  3. 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

  1. V Zdroje dat okna, klepněte na rozevírací nabídku pro SalesOrderHeaders uzlu a vyberte Podrobnosti O.

  2. Rozbalte SalesOrderHeaders uzel.

  3. 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.

  4. 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.

  5. V návrháři, klepněte do textového pole vedle ID zákazníka popisek.

  6. V Vlastnosti okně, zaškrtněte políčko vedle IsReadOnly vlastnost.

  7. 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

  1. V návrháři, poklepejte na text, který zní: MainWindow vytvořit Window_Loaded obslužnou rutinu události.

  2. 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

  1. 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í.

  2. 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();
    
  3. 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í.

  4. 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

  1. 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í.

  2. 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

  1. Na sestavení nabídky, klepněte na tlačítko Sestavit řešení.Ověřte, že vytvoří řešení bez chyb.

  2. Stiskněte klávesu CTRL + F5.

    Spustí se aplikace Visual Studio AdventureWorksService projektu bez ladění.

  3. V Aplikaci Solution Explorer, klepněte pravým tlačítkem myši AdventureWorksSalesEditor projektu.

  4. 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.

  5. V jednom z prodejních záznamů zadejte nějaký text v Komentář a klepněte na tlačítko Uložit změny.

  6. Ukončete aplikaci a spusťte znovu aplikaci ze sady Visual Studio.

  7. 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.

  8. Ukončete aplikaci.

Další kroky

Po dokončení tohoto postupu, můžete provádět následující související úkoly:

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

Přehled vázání dat

Další zdroje

ADO.NET Data Services Framework Overview

Introducing the Entity Framework