Udostępnij za pośrednictwem


Wskazówki: powiązanie kontrolek Silverlight z usługą danych programu WCF

W tym instruktażu będą Tworzenie aplikacji Silverlight zawiera formanty powiązane z danymi.Formanty są powiązane z pośrednictwem rekordy klientów Usługa danych programu WCF.

Ten instruktaż ilustruje następujące zadania:

  • Tworzenie Entity Data Model , jest generowany na podstawie danych w bazie danych AdventureWorksLT.

  • Tworzenie Usługa danych programu WCF , udostępnia dane w Entity Data Model do aplikacji Silverlight.

  • Z systemem Kreatora konfiguracji źródła danych do łączenia się z usługą danych, który wypełnia Źródeł danych okna.

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

  • Tworzenie przyciski nawigowania rekordów wprzód i Wstecz.

    [!UWAGA]

    Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

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

  • Visual Studio

  • Dostęp do działającego wystąpienia 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

Uruchom w tym instruktażu przez utworzenie projektu aplikacji sieci web pusty do hosta Usługa danych programu WCF.

Tworzenie projektu usługi

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

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

  3. Wybierz Pustej aplikacji sieci Web ASP.NET szablonu projektu.

  4. W Nazwa wpisz AdventureWorksWebApp , a następnie kliknij przycisk OK.

Tworzenie modelu jednostki danych usługi

Aby udostępnić dane aplikacji za pomocą Usługa danych programu WCF, model danych muszą być zdefiniowane dla usługi.Utwórz w tym instruktażu Entity Data Model.

Aby utworzyć Model podmiotu danych

  1. Na projektu menu, kliknij Dodaj nowy element.

  2. Wybierz ADO.NET podmiotu danych modelu elementu projektu.

  3. Zmień nazwę na AdventureWorksDataModel.edmx, a następnie kliknij przycisk Dodaj.

    Podmiotu danych, Kreator modelu otwiera.

  4. Na Zawartość wybierz Model strony, kliknij Generowanie z bazy danych, a następnie 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. Sprawdź, czy zapisać obiektu ustawień połączenia w pliku Web.Config jako 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 klienta tabeli.

  8. Kliknij Zakończ.

Tworzenie usługi

Tworzenie Usługa danych programu WCF udostępnić dane w Entity Data Model.

Aby utworzyć usługa

  1. Na projektu menu wybierz Dodaj nowy element.

  2. Wybierz Usługi WCF w danych elementu projektu.

  3. W Nazwa wpisz AdventureWorksDataService.svc , a następnie kliknij przycisk Dodaj.

Konfigurowanie usługi

Należy skonfigurować usługę działania na Entity Data Model , który został utworzony.

Aby skonfigurować usługę

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

    Public Class AdventureWorksDataService
        Inherits DataService(Of AdventureWorksLTEntities)
    
        ' This method is called only once to initialize service-wide policies. 
        Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
            config.SetEntitySetAccessRule("*", EntitySetRights.All)
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2
        End Sub 
    
    End Class
    
    public class AdventureWorksDataService : DataService<AdventureWorksLTEntities>
    {
        // This method is called only once to initialize service-wide policies. 
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }
    }
    
  2. Skompiluj projekt i sprawdź buduje bez błędów.

Tworzenie aplikacji Silverlight

Tworzenie nowej aplikacji Silverlight, a następnie Dodaj źródło danych, dostęp do usługi.

Do tworzenia aplikacji Silverlight

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

  3. Wybierz Aplikacji Silverlight szablonu projektu.

  4. W Nazwa wpisz AdventureWorksSilverlightApp , a następnie kliknij przycisk OK.

  5. W Nowej aplikacji Silverlight okno dialogowe, kliknij przycisk OK.

Dodawanie źródła danych do aplikacji Silverlight

Utwórz źródło danych jest oparty na danych zwróconych przez usługę.

Aby utworzyć źródło danych

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

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

    Kreatora konfiguracji źródła danych otwiera.

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

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

    Visual StudioPrzeszukuje bieżące rozwiązanie dla dostępnych usług i dodaje AdventureWorksDataService.svc do listy dostępnych usług w usługi pole.

  5. W obszaru nazw wpisz AdventureWorksService.

  6. W usługi kliknij AdventureWorksDataService.svc , a następnie kliknij przycisk OK.

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

Dodawanie przycisków w oknie modyfikując XAML w Silverlight Designer.

Aby utworzyć układ okna

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

    Otwiera okno w Silverlight Designer.

  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" Content="&lt;"></Button>
    <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75" Content="&gt;"></Button>
    
  3. Skompiluj projekt.

Tworzenie formantów powiązanych danych

Tworzenie kontrolek, które wyświetlania rekordów klientów, przeciągając Klienci 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 Klienci węzła i wybierz Szczegóły.

  2. Rozwiń Klienci 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:

    • NameStyle

    • PasswordHash

    • PasswordSalt

    • ROWGUID

    Zapobiega to Visual Studio z utworzeniem formantów do tych węzłów, gdy są one upuszczony na projektanta.W tym instruktażu zakłada użytkownik nie chce wyświetlić dane.

  4. Z Źródeł danych okno, przeciągnij Klienci węzeł projektanta ramach przycisków.

    Visual Studiogeneruje XAML i kod, który tworzy zestaw formantów, które są związane z danymi klienta.

Ładowanie danych z usługi

Ładowanie danych za pomocą usługi, a następnie przypisz zwracanych danych do źródła danych, związanego z formantów.

Aby załadować dane z usługi

  1. W projektancie kliknij pusty obszar obok jednego z przycisków.

  2. W Właściwości okna, sprawdź UserControl jest zaznaczone, a następnie kliknij przycisk zdarzenia kartę.

  3. Zlokalizuj załadowane zdarzenia i kliknij go dwukrotnie.

  4. W otwartym pliku kodu (MainPage.xaml) dodaje się using (C#) lub Imports (Visual Basic) oświadczenia:

    Imports System.Windows.Data
    Imports AdventureWorksSilverlightApp.AdventureWorksService
    
    using System.Windows.Data;
    using AdventureWorksSilverlightApp.AdventureWorksService;
    
  5. Zamień następujący kod obsługi zdarzenia.Upewnij się, że zastąpić localhost adresu w tym kodzie adres hosta lokalnego na komputerze rozwoju:

    Private advWorksService As AdventureWorksLTEntities
    Private customersViewSource As CollectionViewSource
    
    Private Sub UserControl_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        advWorksService = New AdventureWorksLTEntities(New Uri("https://localhost:6188/AdventureWorksDataService.svc"))
        customersViewSource = Me.Resources("CustomersViewSource")
        advWorksService.Customers.BeginExecute(Sub(result As IAsyncResult)
                                                   customersViewSource.Source = advWorksService.Customers.EndExecute(result)
                                               End Sub, Nothing)
    End Sub
    
    private AdventureWorksLTEntities advWorksService;
    private System.Windows.Data.CollectionViewSource customersViewSource;
    
    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        advWorksService = new AdventureWorksLTEntities(new Uri("https://localhost:54961/AdventureWorksDataService.svc"));
    
        customersViewSource = this.Resources["customersViewSource"]
        as System.Windows.Data.CollectionViewSource;
        advWorksService.Customers.BeginExecute(result => customersViewSource.Source = advWorksService.Customers.EndExecute(result), null);
    }
    

Testowanie aplikacji

Tworzenie i uruchamianie aplikacji, aby zweryfikować, że można wyświetlić 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. Press F5.

  3. Sprawdź, czy pojawi się pierwszy rekord w tabeli Klienci.

  4. Zamknij aplikację.

    [!UWAGA]

    Jeśli błąd tutaj Sprawdź, czy kod zawiera poprawny port serwera rozwoju ASP.NET.

Przeglądanie rekordów

Dodaj kod, który umożliwia przewijanie rekordów za pomocą <</c1> i przyciski.>

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

  1. Otwórz projektanta i kliknij dwukrotnie MainPage.xaml <</c1> przycisku.

  2. Zamień wygenerowanej backButton_Click obsługi zdarzeń za pomocą następującego kodu:

    Private Sub backButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles backButton.Click
        customersViewSource.View.MoveCurrentToPrevious()
        If customersViewSource.View.IsCurrentBeforeFirst Then
            customersViewSource.View.MoveCurrentToFirst()
        End If 
    End Sub
    
    private void backButton_Click(object sender, RoutedEventArgs e)
    {
        customersViewSource.View.MoveCurrentToPrevious();
        if (customersViewSource.View.IsCurrentBeforeFirst)
            customersViewSource.View.MoveCurrentToFirst();
    }
    
  3. Powrócić do projektanta, a następnie kliknij dwukrotnie > przycisku.

    Visual StudioOtwiera plik kodu i tworzy nowy nextButton_Click obsługi zdarzeń.

  4. Zamień wygenerowanej nextButton_Click obsługi zdarzeń za pomocą następującego kodu:

    Private Sub nextButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles nextButton.Click
        customersViewSource.View.MoveCurrentToNext()
        If customersViewSource.View.IsCurrentAfterLast Then
            customersViewSource.View.MoveCurrentToLast()
        End If 
    End Sub
    
    private void nextButton_Click(object sender, RoutedEventArgs e)
    {
        customersViewSource.View.MoveCurrentToNext();
        if (customersViewSource.View.IsCurrentAfterLast)
            customersViewSource.View.MoveCurrentToLast();
    }
    

Testowanie aplikacji

Tworzenie i uruchamianie aplikacji, czy można wyświetlić i przejść 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. Press F5.

  3. Sprawdź, czy pojawi się pierwszy rekord w tabeli Klienci.

  4. Kliknij <</c1> i przyciski Przejdź wstecz i przekazywać rekordów klienta.>

  5. Zamknij aplikację.

    [!UWAGA]

    Jeśli błąd tutaj Sprawdź, czy kod zawiera poprawny port serwera rozwoju ASP.NET.

Następne kroki

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

  • Jak zapisać zmiany w bazie danych.Aby uzyskać więcej informacji, zobacz Wiązanie danych.

  • Dowiedz się, jak włączyć funkcje za pomocą Usługi danych WCF w aplikacji Silverlight.Aby uzyskać więcej informacji, zobacz Usług danych ADO.NET (Silverlight).

Zobacz też

Inne zasoby

Dostęp do danych i struktur danych