Sdílet prostřednictvím


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:

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

  1. Spusťte aplikaci Visual Studio.

  2. V nabídce Soubor přejděte na příkaz Nový a klikněte na Projekt.

  3. Rozbalte položku Visual C# nebo jazyka Visual Basic, a potom vyberte webové.

  4. Vyberte webové aplikace ASP.NET šablona projektu.

  5. V název zadejte AdventureWorksService a klikněte na tlačítko OK.

    Sada Visual Studio vytvoří AdventureWorksService projektu.

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

  1. Na projektu nabídky, klikněte na tlačítko Přidat novou položku.

  2. V seznamu nainstalovaných šablonách, klikněte na tlačítko Data, a potom vyberte datový Model Entity ADO.NET položku projektu.

  3. Změnit název, který má AdventureWorksModel.edmx, a klikněte na tlačítko Přidat.

    Entity Data Model Wizard otevře.

  4. Na zvolit obsah modelu klikněte na tlačítko Generovat z databáze, a klikněte na tlačítko Další.

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

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

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

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

  1. Na projektu klepněte na příkaz Přidat novou položku.

  2. V seznamu nainstalovaných šablonách, klikněte na tlačítko webové, a potom vyberte datová služba WCF položku projektu.

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

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

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

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

  2. V Nový projekt dialogové okno, rozbalte položku Visual C# nebo jazyka Visual Basic, a potom vyberte Windows.

  3. Vyberte aplikace WPF šablona projektu.

  4. V název zadejte AdventureWorksSalesEditor a klikněte na tlačítko OK.

    Visual Studio přidá AdventureWorksSalesEditor projekt do řešení.

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

    Zdroje dat otevře se okno.

  6. V zdroje dat okna, klikněte na tlačítko Přidat nový zdroj dat.

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

  7. V Zvolte typ zdroje dat stránku průvodce, vyberte možnost služby a potom klikněte na tlačítko Další.

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

  9. V obor názvů zadejte AdventureWorksService.

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

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

  1. V Průzkumníka řešení, dvakrát klikněte na položku MainWindow.xaml.

    Otevře se okno v Návrháři WPF.

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

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

  2. Rozbalit SalesOrderHeaders uzlu.

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

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

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

  6. V Vlastnosti okna, vyberte zaškrtávací políčko vedle IsReadOnly vlastnost.

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

  1. V návrháři, poklepejte na text, který čte: MainWindow Chcete-li vytvořit Window_Loaded obslužnou rutinu události.

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

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

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

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

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

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

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

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

    Visual Studio spustí AdventureWorksService projekt bez ladění.

  3. V Průzkumníka řešení, klikněte pravým tlačítkem myši AdventureWorksSalesEditor projektu.

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

  5. V jednom z prodejní záznamy, zadejte část textu v komentář a klepněte na tlačítko Uložit změny.

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

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

  8. Ukončete aplikaci.

Další kroky

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

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

WCF Data Services Overview

Entity Framework Overview

Přehled datových vazeb

Další zdroje

Přehled Návrháře WPF