Udostępnij za pośrednictwem


Instruktaż: Powiązaniem formantów WPF usłudze danych WCF

W tym instruktażu będą Tworzenie aplikacji WPF, który zawiera formanty powiązane dane.Formanty są powiązane z rekordów klientów, które są hermetyzowane w Usługa danych programu WCF.Można również dodać przyciski, które można używać do przeglądania i aktualizowania rekordów.

Ten instruktaż ilustruje następujące zadania:

  • Tworzenie modelu danych podmiot jest generowany na podstawie danych w bazie danych AdventureWorksLT.

  • Tworzenie Usługa danych programu WCF miejscami danych w modelu jednostki danych do aplikacji WPF.

  • Tworzenie zestawu formantów powiązanych danych przez przeciąganie elementów z Źródeł danych okna Projektanta WPF.

  • Tworzenie przyciski nawigowania rekordy klientów do przodu i Wstecz.

  • Przycisk, który zapisuje zmiany w danych służy do tworzenia Usługa danych programu WCF i źródła danych.

    [!UWAGA]

    Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Wymagania wstępne

Potrzebne do przeprowadzenia tego instruktażu następujące składniki:

  • Visual Studio

  • Dostęp do uruchomione wystąpienie programu SQL Server lub SQL Server Express, który ma AdventureWorksLT przykładowej bazy danych dołączone do niego.Można pobrać bazy danych AdventureWorksLT z witryny sieci Web w witrynie CodePlex.

Znajomość następujące pojęcia jest również przydatne, ale nie jest wymagane do ukończenia Instruktaż:

Tworzenie projektu usługi

Start w tym instruktażu, tworząc projekt Usługa danych programu WCF.

Tworzenie projektu usługi

  1. Uruchom program Visual Studio.

  2. Na pliku menu, wskaż Nowy, a następnie kliknij przycisk projektu.

  3. Rozwiń Visual C# lub programu Visual Basic, a następnie wybierz Web.

  4. Wybierz Aplikacji sieci Web ASP.NET szablonu projektu.

  5. W Nazwa wpisz AdventureWorksService i kliknij przycisk OK.

    Visual Studio tworzy AdventureWorksService projektu.

  6. W Solution Explorer, kliknij prawym przyciskiem myszy Default.aspx i wybierz usunąć.Ten plik nie jest konieczne w tym instruktażu.

Tworzenie modelu jednostki danych usługi

Aby udostępnić dane aplikacji za pomocą Usługa danych programu WCF, należy zdefiniować model danych usługi.Usługa danych programu WCF Obsługuje dwa typy modeli danych: podmiot danych modeli i modele niestandardowe dane, które są zdefiniowane przy użyciu wspólnych obiektów runtime (CLR) języka implementujące IQueryable<T> interfejsu.W tym instruktażu utworzyć Model podmiotu danych dla modelu danych.

Aby utworzyć Model podmiotu danych

  1. Na projektu menu, kliknij Dodaj nowy element.

  2. Na liście zainstalowane szablonów kliknij dane, a następnie wybierz ADO.NET podmiotu danych modelu elementu projektu.

  3. Zmień nazwę na AdventureWorksModel.edmxi kliknij przycisk Dodaj.

    Podmiotu danych, Kreator modelu otwiera.

  4. Na Zawartość wybierz Model strony, kliknij Generowanie z bazy danychi kliknij przycisk Dalej.

  5. Na Wybieranie połączenia danych strony, wybierz jedną z następujących opcji:

    • Jeśli połączenie danych z przykładowej bazy danych AdventureWorksLT jest dostępna na liście rozwijanej, zaznacz go.

      - lub -

    • Kliknij Nowe połączenie i utworzyć połączenie do bazy danych AdventureWorksLT.

  6. Na Wybieranie połączenia danych strony, upewnij się, że zapisać ustawienia połączenia App.Config jako podmiot opcja jest zaznaczona, a następnie kliknij przycisk Dalej.

  7. Na Wybierz obiekty bazy danych użytkownika strony, rozwiń węzeł tabel, a następnie wybierz SalesOrderHeader tabeli.

  8. Kliknij Zakończ.

Tworzenie usługi

Tworzenie Usługa danych programu WCF udostępnić dane w modelu jednostki danych do aplikacji WPF.

Aby utworzyć usługa

  1. Na projektu menu wybierz Dodaj nowy element.

  2. Na liście zainstalowane szablonów kliknij Web, a następnie wybierz Usługi WCF w danych elementu projektu.

  3. W Nazwa wpisz AdventureWorksService.svc i kliknij przycisk Dodaj.

    Dodaje Visual Studio AdventureWorksService.svc do projektu.

Konfigurowanie usługi

Należy skonfigurować do działania w modelu danych podmiotu utworzonego usługi.

Aby skonfigurować usługę

  1. W AdventureWorks.svc kod pliku, zastąpić AdventureWorksService deklaracji następujący kod klasy.

    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);
        }
    }
    

    Aktualizacje tego kodu AdventureWorksService klasy, tak aby wywodzi się z DataService<T> , działa na AdventureWorksLTEntities obiekt kontekstu klasy obiektu modelu danych.Aktualizuje także InitializeService metody zezwala klientom usługi pełnego odczytu/zapisu do SalesOrderHeader jednostki.

  2. Skompiluj projekt i sprawdź buduje bez błędów.

Tworzenie aplikacji WPF klienta

Aby wyświetlić dane z Usługa danych programu WCF, tworzenie nowej aplikacji WPF ze źródłem danych, oparty na usługę.Później w tym instruktażu będzie dodać formanty powiązane dane do aplikacji.

Aby utworzyć aplikację klient WPF

  1. W Solution Explorer, kliknij prawym przyciskiem myszy węzeł rozwiązania, kliknij Dodaji wybierz Nowy projekt.

  2. W Nowy projekt okno dialogowe, rozwiń węzeł Visual C# lub języka Visual Basic, a następnie wybierz Windows.

  3. Wybierz Aplikacji WPF szablonu projektu.

  4. W Nazwa wpisz AdventureWorksSalesEditor i kliknij przycisk OK.

    Dodaje Visual Studio AdventureWorksSalesEditor projektu do roztworu.

  5. Na dane menu, kliknij Pokaż źródeł danych.

    Źródeł danych okno.

  6. W Źródeł danych okna, kliknij Dodać nowe źródło danych.

    Kreatora konfiguracji źródła danych otwiera.

  7. W Wybierz typ źródła danych stronie kreatora wybierz usługi i kliknij przycisk Dalej.

  8. W Dodać odwołanie do usługi okno dialogowe, kliknij przycisk Discover.

    Visual Studio rozwiązanie dla dostępnych usług wyszukiwania i dodaje AdventureWorksService.svc do listy dostępnych usług w usługi pole.

  9. W obszaru nazw wpisz AdventureWorksService.

  10. W usługi kliknij AdventureWorksService.svc , a następnie kliknij przycisk OK.

    Pobiera informacje usługi programu Visual Studio, a następnie powróci do Kreatora konfiguracji źródła danych.

  11. W Dodać odwołanie do usługi strony, kliknij Zakończ.

    Visual Studio dodaje węzły, które reprezentują dane zwracane przez usługę Źródeł danych okna.

Definiowanie interfejsu użytkownika okna

Dodać kilka przycisków do okna, zmieniając XAML w projektancie WPF.Później w tym instruktażu będzie dodać kod, który umożliwia użytkownikom przeglądać i aktualizować rekordy sprzedaży za pomocą tych przycisków.

Aby utworzyć układ okna

  1. W Solution Explorer, kliknij dwukrotnie pozycję MainWindow.xaml.

    Otwiera okno w projektancie WPF.

  2. W XAML wyświetlić projektanta, Dodaj następujący kod między <Grid> znaczników:

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

Tworzenie formantów powiązanych danych

Tworzenie kontrolek, które wyświetlania rekordów klientów, przeciągając SalesOrderHeaders węzła z Źródeł danych okna projektanta.

Aby utworzyć formanty powiązane z danymi

  1. W Źródeł danych okna, kliknij menu rozwijane dla SalesOrderHeaders węzła i wybierz Szczegóły.

  2. Rozwiń SalesOrderHeaders węzła.

  3. W tym przykładzie niektóre pola nie będą wyświetlane tak, kliknij menu rozwijane obok następujące węzły i wybierz Brak:

    • CreditCardApprovalCode

    • ModifiedDate

    • OnlineOrderFlag

    • RevisionNumber

    • ROWGUID

    Akcja ta uniemożliwia tworzenie formantów powiązanych danych dla tych węzłów w następnym kroku Visual Studio.W tym instruktażu zakłada się, że użytkownik końcowy nie muszą przeglądać te dane.

  4. Z Źródeł danych okno, przeciągnij SalesOrderHeaders węzeł do wiersza siatki w obszarze wiersza, który zawiera przyciski.

    Visual Studio generuje XAML i kod, który tworzy zestaw formantów, które są związane z danymi w produktu tabeli.Aby uzyskać więcej informacji na temat generowanych XAML i kod zobacz Wiązanie formantów WPF do danych w programie Visual Studio.

  5. W projektancie, kliknij pole tekstowe obok ID klienta etykiety.

  6. W Właściwości okna, zaznacz pole wyboru obok IsReadOnly właściwości.

  7. Ustaw IsReadOnly właściwości dla każdego z następujących pól tekstowych:

    • Numer zamówienia zakupu

    • Identyfikator zamówienia sprzedaży

    • Numer zamówienia sprzedaży

Ładowanie danych z usługi

Użyj obiektu proxy usługi załadować dane sprzedaży z usługi, a następnie przypisz zwracanych danych do źródła danych dla CollectionViewSource w oknie WPF.

Aby załadować dane z usługi

  1. W projektancie, kliknij dwukrotnie tekst, który odczytuje: MainWindow do tworzenia Window_Loaded obsługi zdarzeń.

  2. Zamień następujący kod obsługi zdarzenia.Upewnij się, że zastąpić localhost adres adres hosta lokalnego na komputerze rozwoju w tym kodzie.

    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();
    }
    

Przeglądanie rekordów sprzedaży

Dodaj kod, który umożliwia użytkownikom przewiń rekordy sprzedaży za pomocą <</c1> i przyciski.>

Aby umożliwić użytkownikom przechodzenie rekordy sprzedaży

  1. W projektancie, kliknij dwukrotnie <</c1> przycisku na powierzchni okna.

    Otwiera plik kodu Visual Studio i tworzy nowy backButton_Click obsługi zdarzenia Click zdarzenia.

  2. Dodaj następujący kod do wygenerowanej backButton_Click obsługi zdarzeń:

    If OrdersViewSource.View.CurrentPosition > 0 Then
        OrdersViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (ordersViewSource.View.CurrentPosition > 0)
        ordersViewSource.View.MoveCurrentToPrevious();
    
  3. Powrócić do projektanta, a następnie kliknij dwukrotnie > przycisku.

    Otwiera plik kodu Visual Studio i tworzy nowy nextButton_Click obsługi zdarzenia Click zdarzenia.

  4. Dodaj następujący kod do wygenerowanej nextButton_Click obsługi zdarzeń:

    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();
    }
    

Zapisywanie zmian rekordy sprzedaży

Dodaj kod, który umożliwia użytkownikom wyświetlanie i zapisać zmiany w sprzedaży rekordów przy użyciu zapisać zmiany przycisku.

Aby dodać możliwość zapisania zmian rekordy sprzedaży

  1. W projektancie, kliknij dwukrotnie Zapisać zmiany przycisku.

    Otwiera plik kodu Visual Studio i tworzy nowy saveButton_Click obsługi zdarzenia Click zdarzenia.

  2. Dodaj następujący kod do saveButton_Click obsługi zdarzeń.

    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();
    

Testowanie aplikacji

Tworzenie i uruchamianie aplikacji, aby zweryfikować, że można przeglądać i aktualizować rekordy klientów.

Aby przetestować aplikację

  1. Na budować menu, kliknij Roztwór budować.Zweryfikuj, że rozwiązanie opiera się bez błędów.

  2. Naciśnij CTRL + F5.

    Uruchamia program Visual Studio AdventureWorksService projektu bez jej debugowanie.

  3. W Solution Explorer, kliknij prawym przyciskiem myszy AdventureWorksSalesEditor projektu.

  4. W menu kontekstowym pod debugowania, kliknij uruchomić nowe wystąpienie.

    Aplikacja uruchamia.Sprawdź, czy:

    • Pola tekstowe wyświetlane różne pola danych z pierwszego rekordu sprzedaży ma identyfikator zamówienia sprzedaży 71774.

    • Można kliknąć > lub <</c4> przyciski do nawigowania inne rekordy sprzedaży.

  5. W jednym rekordy sprzedaży, wpisz tekst w komentarz , a następnie kliknij przycisk zapisać zmiany.

  6. Zamknij aplikację, a następnie ponownie uruchomić aplikację z programu Visual Studio.

  7. Przejdź do rekordu sprzedaży, które zmieniono i zweryfikować, że zmiana nie ustąpi po zamknięciu i ponownym otwarciu aplikacji.

  8. Zamknij aplikację.

Następne kroki

Po zakończeniu tego instruktażu, można wykonywać następujące zadania:

Zobacz też

Zadania

Jak: powiązanie formantów WPF do danych w programie Visual Studio

Instruktaż: Powiązanie formantów WPF na Model danych jednostki

Instruktaż: Powiązaniem formantów WPF z zestawu danych

Koncepcje

Wiązanie formantów WPF do danych w programie Visual Studio

WPF i Silverlight Designer, omówienie

Omówienie wiązania danych

Inne zasoby

ADO.NET Data Services Framework Overview

Introducing the Entity Framework