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ż:
Usługi danych WCF.Aby uzyskać więcej informacji, zobacz WCF Data Services Overview.
Podmiot danych modeli i ADO.NET Entity Framework.Aby uzyskać więcej informacji, zobacz Entity Framework Overview.
Praca z Silverlight Designer.
Powiązanie danych dodatku Silverlight.Aby uzyskać więcej informacji, zobacz Wiązanie danych.
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
Na pliku menu, wskaż Nowy, a następnie kliknij przycisk projektu.
Rozwiń Visual C# lub programu Visual Basic, a następnie wybierz Web.
Wybierz Pustej aplikacji sieci Web ASP.NET szablonu projektu.
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
Na projektu menu, kliknij Dodaj nowy element.
Wybierz ADO.NET podmiotu danych modelu elementu projektu.
Zmień nazwę na AdventureWorksDataModel.edmx, a następnie kliknij przycisk Dodaj.
Podmiotu danych, Kreator modelu otwiera.
Na Zawartość wybierz Model strony, kliknij Generowanie z bazy danych, a następnie kliknij przycisk Dalej.
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.
Sprawdź, czy zapisać obiektu ustawień połączenia w pliku Web.Config jako opcja jest zaznaczona, a następnie kliknij przycisk Dalej.
Na Wybierz obiekty bazy danych użytkownika strony, rozwiń węzeł tabel, a następnie wybierz klienta tabeli.
Kliknij Zakończ.
Tworzenie usługi
Tworzenie Usługa danych programu WCF udostępnić dane w Entity Data Model.
Aby utworzyć usługa
Na projektu menu wybierz Dodaj nowy element.
Wybierz Usługi WCF w danych elementu projektu.
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ę
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; } }
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
W Solution Explorer, kliknij prawym przyciskiem myszy węzeł rozwiązania, kliknij Dodaji wybierz Nowy projekt.
W Nowy projekt okno dialogowe, rozwiń węzeł Visual C# lub języka Visual Basic, a następnie wybierz Silverlight.
Wybierz Aplikacji Silverlight szablonu projektu.
W Nazwa wpisz AdventureWorksSilverlightApp , a następnie kliknij przycisk OK.
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
Na dane menu, kliknij Pokaż źródeł danych.
W Źródeł danych okna, kliknij Dodać nowe źródło danych.
Kreatora konfiguracji źródła danych otwiera.
W Wybierz typ źródła danych stronie kreatora wybierz usługi i kliknij przycisk Dalej.
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.
W obszaru nazw wpisz AdventureWorksService.
W usługi kliknij AdventureWorksDataService.svc , a następnie kliknij przycisk OK.
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
W Solution Explorer, kliknij dwukrotnie pozycję MainPage.xaml.
Otwiera okno w Silverlight Designer.
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="<"></Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75" Content=">"></Button>
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
W Źródeł danych okna, kliknij menu rozwijane dla Klienci węzła i wybierz Szczegóły.
Rozwiń Klienci węzła.
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.
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
W projektancie kliknij pusty obszar obok jednego z przycisków.
W Właściwości okna, sprawdź UserControl jest zaznaczone, a następnie kliknij przycisk zdarzenia kartę.
Zlokalizuj załadowane zdarzenia i kliknij go dwukrotnie.
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;
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ę
Na budować menu, kliknij Roztwór budować.Zweryfikuj, że rozwiązanie opiera się bez błędów.
Press F5.
Sprawdź, czy pojawi się pierwszy rekord w tabeli Klienci.
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
Otwórz projektanta i kliknij dwukrotnie MainPage.xaml <</c1> przycisku.
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(); }
Powrócić do projektanta, a następnie kliknij dwukrotnie > przycisku.
Visual StudioOtwiera plik kodu i tworzy nowy nextButton_Click obsługi zdarzeń.
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ę
Na budować menu, kliknij Roztwór budować.Zweryfikuj, że rozwiązanie opiera się bez błędów.
Press F5.
Sprawdź, czy pojawi się pierwszy rekord w tabeli Klienci.
Kliknij <</c1> i przyciski Przejdź wstecz i przekazywać rekordów klienta.>
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).