Aracılığıyla paylaş


İzlenecek yol: wpf denetimleri bir wcf veri hizmetine bağlama

Bu izlenecek yolda, veriye bağlı denetimler içeren bir wpf uygulaması yaratacaksınız. Saklanmış müşteri kayıtlarını denetimlerin bağlı olduğu bir WCF Veri Hizmeti. Müşteri kayıtları görüntülemek ve güncelleştirmek için kullanabileceğiniz düğmeler de ekleyecektir.

Bu örneklerde aşağıdaki görevler gösterilir:

  • Varlık veri modeli oluşturma, AdventureWorksLT örnek veritabanındaki verilerden oluşturulur.

  • Oluşturma bir WCF Veri Hizmeti , varlık veri modelindeki wpf uygulama verilerini sunar.

  • Öğeleri sürükleyerek veriye bağlı denetimler kümesi oluşturma Veri kaynakları wpf designer penceresi.

  • İleriye ve geriye doğru müşteri kayıtlar arasında gezinme düğmeleri oluşturma.

  • Denetimleri veri değişiklikleri kaydeder bir düğme oluşturmak WCF Veri Hizmeti ve alttaki veri kaynağında.

    Not

    Bilgisayarınızda, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazılarının adı veya konumu farklı gösterilebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio ayarları.

Önkoşullar

Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:

  • Visual Studio

  • Çalışan bir sql Server veya kendisine bağlı AdventureWorksLT örnek veritabanı olan sql Server Express örneği erişimi. AdventureWorksLT veritabanından karşıdan yükleyebileceğiniz CodePlex Web sitesi.

Aşağıdaki kavramlar, önceki bilgisi de yararlı, ancak bu izlenecek yolu tamamlamak için gerekli değildir:

Hizmeti projesi oluşturma

Bu izlenecek yolda, bir proje için yaratmakla baþlayalým bir WCF Veri Hizmeti.

Hizmeti projesi oluşturmak için

  1. Visual Studio'yu başlatın.

  2. Dosya menüsünde, Yeni'nin üzerine gelin ve Proje'ye tıklatın.

  3. Genişletme Visual C# veya Visual Basicseçip Web.

  4. Seçin ASP Web uygulama proje şablonu.

  5. İçinde ad kutusuna yazın AdventureWorksService ve'ı Tamam.

    Visual Studio oluşturur AdventureWorksService proje.

  6. İçinde Solution Explorer'da, sağ Default.aspx ve silmek. Bu izlenecek yolda, bu dosya gerekmez.

Hizmet için varlık veri modeli oluşturma

Uygulama verileri kullanarak göstermek için bir WCF Veri Hizmeti, hizmet için bir veri modeli tanımlamanız gerekir. WCF Veri Hizmeti İki tür veri modellerini destekler: varlık veri modelleri ve uygulayan ortak dil çalışma zamanı (clr) nesneleri kullanarak tanımlı özel veri modelleri IQueryable<T> arabirimi. Bu izlenecek yolda, bir veri modeli için varlık veri modeli oluşturun.

Varlık veri modeli oluşturmak için

  1. Proje menüsünde, Yeni Öğe Ekle'yi tıklatın.

  2. Yüklü şablonlar listesinde tıklatın veriseçip ado.net varlık veri modeli proje öğesi.

  3. Adını değiştirmek AdventureWorksModel.edmxve'ı Ekle.

    Varlık veri modeli Sihirbazı açar.

  4. Üzerinde Modeli içeriği seçin sayfasında,'ı veritabanından Generate, tıklatın İleri.

  5. Üzerinde Choose Your Data Connection sayfasında, aşağıdaki seçeneklerden birini seçin:

    • Aşağı açılan listesinde AdventureWorksLT örnek veritabanı için bir veri bağlantısı varsa, bunu seçin.

      -veya-

    • ' I Yeni bir bağlantı ve AdventureWorksLT veritabanına bir bağlantı oluşturun.

  6. Üzerinde Choose Your Data Connection sayfasında, aşağıdakilerden emin App.Config varlık bağlantı ayarlarını kaydetmek seçeneği seçili değilse ve i İleri.

  7. Üzerinde Choose Your Database Objects sayfasında, genişletme Tabloseçip SalesOrderHeader tablo.

  8. Son düğmesini tıklatın.

Hizmeti oluşturuluyor

Oluşturma bir WCF Veri Hizmeti varlık veri modelindeki wpf uygulamasına veri göstermek için.

Hizmet oluşturulamadı

  1. Üzerinde Proje menüsünde, select Add New Item.

  2. Yüklü şablonlar listesinde tıklatın Webseçip wcf veri hizmeti proje öğesi.

  3. İçinde ad kutusuna yazın AdventureWorksService.svc ve'ı Ekle.

    Visual Studio ekler AdventureWorksService.svc projesi.

Hizmet yapılandırma

Oluşturduğunuz varlık veri modeli üzerinde çalışması için hizmetin yapılandırmanız gerekir.

Hizmeti yapılandırmak için

  1. De AdventureWorks.svc kod dosyası, yerine AdventureWorksService sınıf bildirimi aşağıdaki kod ile.

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

    Bu kod güncelleştirmeleri AdventureWorksService , böylece onu türetildiği sınıfı bir DataService<T> , çalışır AdventureWorksLTEntities object varlık veri modelindeki içerik sınıfı. Aynı zamanda güncelleştirmeleri InitializeService yöntemi, istemcilere hizmet tam okuma/yazma erişimi sağlamak için SalesOrderHeader varlık.

  2. Projeyi derleyin ve hatasız olarak oluşturulur doğrulayın.

wpf istemci uygulaması oluşturma

Verileri görüntülemek için WCF Veri Hizmeti, yeni bir wpf uygulama hizmetini temel alan bir veri kaynağı oluşturun. Bu yönerge uygulamaya veriye bağlı denetimler ekleyeceksiniz.

wpf istemci uygulaması oluşturmak için

  1. İçinde Solution Explorer, çözüm düğümünü sağ tıklatın,'ı Ekleve Yeni bir proje.

  2. İçinde Yeni bir proje iletişim kutusunda, genişletme Visual C# veya Visual Basicseçip Windows.

  3. Seçin wpf uygulama proje şablonu.

  4. İçinde ad kutusuna yazın AdventureWorksSalesEditor ve'ı Tamam.

    Visual Studio ekler AdventureWorksSalesEditor çözüme bir proje.

  5. Üzerinde veri menüsünde,'ı Show Data Sources.

    Veri kaynakları penceresi açılır.

  6. İçinde Veri kaynakları penceresinde tıklatın Add New Data Source.

    Veri Kaynağı Yapılandırma Sihirbaz'ı açılır.

  7. İçinde veri kaynağı türü seçin Sihirbazı'nı seçin, sayfa hizmetsonraki.

  8. İçinde Add Reference hizmet iletişim kutusunu tıklatın bulma.

    Visual Studio, sunulan hizmetler için geçerli çözüm arar ve ekler AdventureWorksService.svc 'de sunulan hizmetler listesine Hizmetleri kutusu.

  9. İçinde ad kutusuna yazın AdventureWorksService.

  10. İçinde Hizmetleri kutusuna AdventureWorksService.svcTamam.

    Visual Studio hizmet bilgilerini karşıdan yükler ve sonra döner Data Source Configuration Wizard.

  11. İçinde Add Reference hizmet sayfasında,'ı Son.

    Visual Studio hizmeti tarafından döndürülen verilerin temsil düğümler ekler Veri kaynakları pencere.

Pencereyi kullanıcı arabirim tanımlama

Birçok düğme wpf tasarımcısında xaml değiştirerek penceresine ekleyin. Bu yönerge, bu düğmeleri kullanarak satış kayıtlarını görüntülemek ve kullanıcıların kodu ekleyeceksiniz.

Pencere düzeni oluşturmak için

  1. İçinde Solution Explorer'da, MainWindow.xaml'ı çift tıklatın.

    wpf designer penceresi açılır.

  2. De XAML Tasarımcısı görüntülemek için arasında aşağıdaki kodu ekleyip <Grid> etiketler:

    <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. Projeyi yapılandırın.

Veriye bağlı denetimler oluşturma

Sürükleyerek müşteri kayıtlarını görüntüleyen denetimler oluşturma SalesOrderHeaders düğümden Veri kaynakları designer penceresi.

Veriye bağlı denetimler oluşturmak için

  1. İçinde Veri kaynakları penceresinde, aşağı açılan menüsünü SalesOrderHeaders düğümünü seçip alt Ayrıntıları.

  2. Genişletme SalesOrderHeaders düğümü.

  3. Bu örnek, bazı alanlar görüntülenmez bu nedenle aşağıdaki düğümler yanındaki aşağı açılan menüyü tıklatıp seçin yok:

    • CreditCardApprovalCode

    • ModifiedDate

    • OnlineOrderFlag

    • RevisionNumber

    • ROWGUID

    Bu eylem Visual Studio veriye bağlı denetimler bu düğümler için bir sonraki adımda oluşturmasını engeller. Bu izlenecek yolda, son kullanıcı bu verileri görmek uymasının gerekmediğini varsayılır.

  4. Dan Veri kaynakları penceresinde, Sürükle SalesOrderHeaders altındaki düğmeleri içeren satır kılavuz satırını düğüm.

    Visual Studio'nun oluşturduğu xaml ve veriye bağlı denetimler kümesini oluşturan kod Ürün tablo. Oluşturulan xaml ve kod hakkında daha fazla bilgi için bkz: wpf denetimleri Visual Studio veri.

  5. Tasarımcısı'nda metin kutusunun yanındaki tıklatın Customer ID etiket.

  6. İçinde özelliklerini onay kutusunun yanındaki penceresinde select IsReadOnly özelliği.

  7. Set IsReadOnly özelliği aşağıdaki metin kutularının her biri için:

    • Satınalma sipariş numarası

    • Satış Sipariş No

    • Satış sipariş numarası

Hizmetinden verileri yüklemek

Hizmetten satış verilerini yüklemek için hizmet proxy nesnesini kullanın ve sonra döndürülen verileri için veri kaynağı atamak CollectionViewSource wpf penceresinde.

Hizmetinden verileri yüklemek için

  1. Tasarımcısı'nda okur metnini çift tıklatın: MainWindow oluşturmak için Window_Loaded olay işleyicisi.

  2. Olay işleyicisini aşağıdaki kodla değiştirin. Oturdum emin localhost bu kodda adresiyle geliştirme bilgisayarınızda yerel ana bilgisayar adresi.

    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("http://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("http://localhost:45899/AdventureWorksService.svc"));
        salesQuery = dataServiceClient.SalesOrderHeaders;
    
        ordersViewSource = ((CollectionViewSource)(this.FindResource("salesOrderHeadersViewSource")));
        ordersViewSource.Source = salesQuery.Execute();
        ordersViewSource.View.MoveCurrentToFirst();
    }
    

Satış kayıtlar arasında gezinme

Kullanarak satış kayıtlar arasında kaydırma yapmak kullanıcıların sağlayan kod eklemek < ve > düğmeler.

Satış Kayıtlarda gezinmek kullanıcıları etkinleştirmek için

  1. Tasarımcısı'nda çift < pencere yüzey üzerinde düğme.

    Visual Studio kod arkada dosyasını açar ve oluşturur Yeni bir backButton_Click olay işleyicisini Click olay.

  2. Aşağıdaki kodu ekleyip oluşturulmuş backButton_Click olay işleyicisi:

    If OrdersViewSource.View.CurrentPosition > 0 Then
        OrdersViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (ordersViewSource.View.CurrentPosition > 0)
        ordersViewSource.View.MoveCurrentToPrevious();
    
  3. Dönmek için designer ve çift > düğme.

    Visual Studio kod arkada dosyasını açar ve oluşturur Yeni bir nextButton_Click olay işleyicisini Click olay.

  4. Aşağıdaki kodu ekleyip oluşturulmuş nextButton_Click olay işleyicisi:

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

Satış kayıtları değişiklikleri kaydetme

Hem görüntülemek hem de kullanarak satış kayıtları değişiklikleri kaydetmek kullanıcıların sağlayan kod eklemek değişiklikleri kaydetmek düğme.

Değişiklikleri satış kayıtları kaydetme yeteneği eklemek için

  1. Tasarımcısı'nda çift Değişiklikleri Kaydet düğme.

    Visual Studio kod arkada dosyasını açar ve oluşturur Yeni bir saveButton_Click olay işleyicisini Click olay.

  2. saveButton_Click olay işleyicisine aşağıdaki kodu ekleyin.

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

Uygulamayı Test Etme

Oluşturmak ve görüntülemek ve müşteri kayıtlarını doğrulamak için uygulamayı çalıştırın.

Uygulamayı test etmek için

  1. Üzerinde Build menüsünde,'ı Build Solution. Çözümünüzün hatasız oluşturulduğunu doğrulayın.

  2. Press ctrl + F5'e.

    Visual Studio başlıyor AdventureWorksService , hata ayıklama olmadan proje.

  3. İçinde Solution Explorer'da, sağ AdventureWorksSalesEditor proje.

  4. Bağlam menüsünde altında Debug,'ı Yeni bir örnek başlatmadan.

    Uygulama çalışır. Aşağıdakileri doğrulayın:

    • Metin kutularını farklı veri alanlarından satış siparişi Kimliğine sahip ilk satış kaydı görüntülemek 71774.

    • Tıklatmanız > veya < satış diğer kayıtlar arasında gezinme düğmeleri.

  5. Bir satış kayıtları, bazı metin yazın Yorum kutusunu ve ardından değişiklikleri kaydetmek.

  6. Uygulamayı kapatın ve sonra uygulama Visual Studio yeniden başlatın.

  7. Değiştirdiğiniz satış kayda gidin ve uygulamayı kapatıp sonra değişiklik kalır doğrulayın.

  8. Uygulamayý kapatýn.

Sonraki Adımlar

Bu izlenecek yolda tamamladıktan sonra aşağıdaki görevleri gerçekleştirebilirsiniz:

Ayrıca bkz.

Görevler

Nasıl yapılır: Visual Studio veri wpf denetimleri bağlayın

İzlenecek yol: wpf denetimleri bir varlık veri modeli bağlama

İzlenecek yol: wpf denetimlerini Dataset nesnesine bağlama

Kavramlar

wpf denetimleri Visual Studio veri

wpf ve Silverlight Tasarımcısı genel bakış

Veri Bağlama Genel Bakış

Diğer Kaynaklar

ADO.NET Data Services Framework Overview

Introducing the Entity Framework