Aracılığıyla paylaş


İzlenecek yol: Bir WCF Veri Hizmetine WPF Denetimleri Bağlama

Bu örnekte, veri bağlama denetimleri içeren WPF uygulaması oluşturur.Denetimleri içinde yalıtılan müşteri kayıtları bağlı bir WCF Veri Hizmeti.Ayrıca, müşterilerin kayıtları görüntülemek ve güncelleştirmek için kullanabileceğiniz düğmeleri ekler.

Bu izlenecek yol aşağıdaki görevleri gösterir:

  • Bir varlık veri modeli oluşturma AdventureWorksLT örnek veritabanının verilerinden oluşturulur.

  • Oluşturma bir WCF Veri Hizmeti veri WPF uygulaması varlık veri modeli kullanıma sunar.

  • Veri ilişkili denetimleri kümesini öğelerinden sürükleyerek oluşturma veri kaynakları WPF Tasarımcısı penceresine.

  • Müşteri kayıtlar arasında ileri ve geri gezinme düğmeleri oluşturuluyor.

  • Denetimlere verilerde değişiklikleri kaydeder bir düğme oluşturma WCF Veri Hizmeti ve temel alınan veri kaynağı.

    [!NOT]

    Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

Önkoşullar

Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

  • Visual Studio

  • Access için SQL Server veya bağlı AdventureWorksLT örnek veritabanında SQL Server Express çalışan bir örneği.AdventureWorksLT veritabanından indirebilirsiniz CodePlex Web sitesinde.

Aşağıdaki kavramları bilgisi de faydalı, ancak yönergeyi tamamlamak için gerekli:

Hizmet projesi oluşturma

Bu kılavuz için bir proje oluşturarak başlayın bir WCF Veri Hizmeti.

Hizmeti projesi oluşturmak için

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

  2. Dosya menüsünde, Yeni öğesinin üzerine gelin ve Proje seçeneğine tıklayın.

  3. Genişletme Visual C# veya Visual Basic, seçip Web.

  4. Seçin ASP.NET Web uygulaması proje şablonu.

  5. İçindeki adı kutusuna AdventureWorksService tıklatıp Tamam.

    Visual Studio oluşturur AdventureWorksService proje.

  6. İçindeki Çözüm Gezgini, sağ Default.aspx seçip silmek.Bu dosya bu izlenecek gerekli değildir.

Bir varlık veri modeli için hizmet oluşturma

Bir uygulama için veri kullanarak kullanıma sunmak için bir WCF Veri Hizmeti, hizmeti için bir veri modeli tanımlamaları gerekir. WCF Veri Hizmeti Veri modelleri iki türlerini destekler: Varlık veri modeli ve ortak dil çalışma zamanı (CLR) nesneleri kullanarak tanımlanan özel veri modelleri IQueryable arabirimi.Bu örnekte, bir varlık veri modeli veri modeli için oluşturun.

Bir varlık veri modeli oluşturmak için

  1. Üzerinde Proje menüsünde tıklatın Yeni Öğe Ekle.

  2. Yüklü Şablonlar listesinde tıklatın veri, seçip ADO.NET varlık veri modeli proje öğesi.

  3. Adına değiştirmek AdventureWorksModel.edmx olarak, tıklatıp Ekle.

    Varlık veri modeli Sihirbazı açar.

  4. Üzerinde Model içeriği seçin sayfasında, tıklatın veritabanından Oluştur, tıklatıp sonraki.

  5. Üzerinde Bilgisayarınızı veri bağlantısı seçin sayfasında, aşağıdaki seçeneklerden birini seçin:

    • Aşağı açılır listede bir veri bağlantısı AdventureWorksLT örnek veritabanına kullanılabilir değilse, seçin.

      -veya-

    • Tıklatın Yeni bağlantı ve AdventureWorksLT veritabanına bağlantı oluşturun.

  6. Üzerinde Bilgisayarınızı veri bağlantısı seçin sayfasında, emin olun varlık App.Config bağlantı ayarlarını kaydetmek seçeneği seçilir ve ardından sonraki.

  7. Üzerinde veritabanı nesnelerinizi sayfasında, genişletme tabloları, seçip SalesOrderHeader tablo.

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

Hizmeti Oluşturma

Oluşturma bir WCF Veri Hizmeti veri WPF uygulaması varlık veri modeli kullanıma sunmak için.

Hizmet oluşturmak için

  1. Üzerinde Proje menüsü, select Yeni Öğe Ekle.

  2. Yüklü Şablonlar listesinde tıklatın Web, seçip WCF veri hizmeti proje öğesi.

  3. İçindeki adı kutusuna AdventureWorksService.svc tıklatıp Ekle.

    Visual Studio ekler AdventureWorksService.svc projeye.

Hizmet yapılandırma

Oluşturduğunuz varlık veri modeli üzerinde çalışılacak hizmet yapılandırmanız gerekir.

Hizmeti yapılandırmak için

  1. İçindeki AdventureWorks.svc kod dosyası, yerine AdventureWorksService sınıf bildiriminin aşağıdaki kodla.

    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 kodun güncelleştirir AdventureWorksService öğesinden türer sınıfının bir DataService temel aldığı AdventureWorksLTEntities varlık veri modeli sınıfta bağlam nesnesi.Ayrıca güncelleştirir InitializeService hizmeti tam okuma/yazma erişimi istemcileri izin vermek için yöntem SalesOrderHeader varlık.

  2. Projeyi derlemek ve hatasız oluşturulduğunu doğrulayın.

WPF istemci uygulaması oluşturma

Verileri görüntülemek için WCF Veri Hizmeti, yeni bir WPF uygulaması hizmetini temel alan bir veri kaynağı oluşturun.Bu kılavuz, veri bağlama denetimleri uygulamaya ekler.

WPF istemci uygulama oluşturmak için

  1. İçindeki Çözüm Gezgini, çözüm düğümünü sağ tıklayın, Ekle, seçip Yeni proje.

  2. İçindeki Yeni proje iletişim kutusunda, genişletme Visual C# veya Visual Basic, seçip Windows.

  3. Seçin WPF uygulaması proje şablonu.

  4. İçindeki adı kutusuna AdventureWorksSalesEditor tıklatıp Tamam.

    Visual Studio ekler AdventureWorksSalesEditor proje çözüme.

  5. Veri menüsünden Veri Kaynaklarını Göster'i tıklatın.

    Veri kaynakları pencere açılır.

  6. İçindeki veri kaynakları penceresinde tıklatın Yeni veri kaynağı Ekle.

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

  7. İçindeki bir veri kaynağı türü seçin Sihirbazı'nı seçin, sayfa hizmet ve ardından sonraki.

  8. İçindeki hizmeti Başvuru Ekle iletişim kutusunda, tıklatın bulma.

    Visual Studio kullanılabilir hizmetleri için geçerli çözümdeki arar ve ekler AdventureWorksService.svc kullanılabilir hizmetleri listesine Hizmetleri kutusu.

  9. İçindeki ad alanı kutusuna AdventureWorksService.

  10. İçindeki Hizmetleri kutusunda, AdventureWorksService.svc ve ardından Tamam.

    Visual Studio service bilgiler indirir ve ardından döndürür veri kaynağı Yapılandırma Sihirbazı.

  11. İçindeki hizmeti Başvuru Ekle sayfasında, tıklatın Son.

    Visual Studio hizmeti tarafından döndürülen verileri temsil eden düğümleri ekler veri kaynakları pencere.

Kullanıcı arabirimi penceresinin tanımlama

Birçok düğme, XAML WPF Tasarımcısı'nda değiştirerek penceresine ekleyin.Bu kılavuz size görüntülemek ve bu düğmeleri kullanarak satış kayıtları güncelleştirmek kullanıcılar sağlayan kodu ekler.

Pencere düzenini oluşturmak için

  1. İçindeki Çözüm Gezgini, MainWindow.xaml çift tıklatın.

    WPF Tasarımcısı'nda pencere açılır.

  2. İçindeki XAML görüntülemek Tasarımcısı, aşağıdaki kodu arasında ekleyin <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 oluşturun.

Veri ilişkili denetimleri oluşturma

Müşteri kayıtları sürükleyerek görüntülemek denetimlerini oluşturmak SalesOrderHeaders düğümünden veri kaynakları designer penceresine.

Veri bağlama denetimi oluşturmak için

  1. İçindeki veri kaynakları penceresinde, açılır menüsünü SalesOrderHeaders düğümü ve seçin ayrıntıları.

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

  3. Bazı alanlar görüntülenmez Bu örnek için bu nedenle şu düğümler yanındaki aşağı açılır menüsünü tıklatın ve seçin Hiçbiri:

    • CreditCardApprovalCode

    • ModifiedDate

    • OnlineOrderFlag

    • RevisionNumber

    • ROWGUID

    Bu eylem, bir sonraki adımı bu düğümler için veri bağlama denetimleri oluşturmasını Visual Studio engeller.Bu örnek için bu verileri görmek son kullanıcı gerekmediğini varsayılır.

  4. Öğesinden veri kaynakları penceresinde sürükleme SalesOrderHeaders düğmeleri içeren satırı altında kılavuz satıra düğümü.

    Visual Studio, XAML ve verilere bağlı denetimleri kümesini oluşturan kod oluşturur Ürün tablo.Oluşturulan XAML ve kod hakkında daha fazla bilgi için Visual Studio'da Verilere WPF Denetimleri Bağlama.

  5. Metin kutusunun yanındaki Tasarımcısı'nda tıklatın Müşteri Kimliği etiketi.

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

  7. Ayarlama IsReadOnly özelliği her şu metin kutuları için:

    • Satın alma sıra numarası

    • Sipariş Kimliği

    • Sipariş numarası

Veri hizmetinden yüklenemiyor

Satış verileri hizmetinden yüklemek için hizmet proxy nesnesini kullanın ve veri kaynağı için döndürülen veri atamak CollectionViewSource WPF penceresinde.

Veri hizmetinden yüklemek için

  1. Tasarımcıda okur metin çift tıklatın: MainWindow oluşturmak için Window_Loaded olay işleyicisi.

  2. Olay işleyicisini aşağıdaki kod ile değiştirin.Değiştirmeniz emin olun localhost bu kodda adresi geliştirme bilgisayarınızda yerel ana makine adresine sahip.

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

Gezinme satış kaydı

Kullanıcıların satış kayıtlarında kullanarak gezinin olanak tanıyan kodu ekleyin < ve > düğmeler.

Kullanıcıların satış kayıtları gidin sağlamak için

  1. Tasarımcıda çift < pencere yüzey üzerinde düğmesi.

    Visual Studio arka plan kod dosyasını açar ve yeni bir oluşturur backButton_Click olay işleyicisi Click olay.

  2. Aşağıdaki kod eklemek için oluşturulan 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. Tasarımcısına geri dönmek ve çift tıklatın > düğmesine tıklayın.

    Visual Studio arka plan kod dosyasını açar ve yeni bir oluşturur nextButton_Click olay işleyicisi Click olay.

  4. Aşağıdaki kod eklemek için oluşturulan 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ını değişiklikler kaydediliyor

Hem görüntülemek ve kullanarak, satış kayıtlarını değişiklikleri kaydetmek kullanıcılar sağlayan kodu Ekle değişiklikleri kaydetmek düğmesine tıklayın.

Değişiklikleri kaydetmek için satış kayıtları olanağı eklemek için

  1. Tasarımcıda çift Değişiklikleri Kaydet düğmesine tıklayın.

    Visual Studio arka plan kod dosyasını açar ve yeni bir oluşturur saveButton_Click olay işleyicisi Click olay.

  2. Aşağıdaki kod ekleyin saveButton_Click olay işleyicisi.

    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şturun ve görüntüleyin ve güncelleştirme Müşteri kayıtlarını doğrulamak için uygulamayı çalıştırın.

Uygulamayı test etmek için

  1. Üzerinde Yapı menüsünde tıklatın Yapı çözümü.Çözüm hatasız oluşturulduğunu doğrulayın.

  2. Bas CTRL + F5.

    Visual Studio başlatır AdventureWorksService hata ayıklama olmadan proje.

  3. İçindeki Çözüm Gezgini, sağ AdventureWorksSalesEditor proje.

  4. Bağlam menüsünde altında hata ayıklama, tıklatın Başlangıç yeni bir örnek.

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

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

    • Tıklatabilirsiniz > veya < diğer satış kayıtlarında gezinmek için düğmeler.

  5. Bir satış kayıtları bazı metni yazın Açıklama kutusunu işaretleyin ve ardından değişiklikleri kaydetmek.

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

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

  8. Uygulamayı kapatın.

Sonraki Adımlar

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

Ayrıca bkz.

Görevler

Nasıl Yapılır: Visual Studio'da Verilere WPF Denetimleri Bağlama

İzlenecek yol: Bir Veri Kümesine WPF Denetimleri Bağlama

Kavramlar

Visual Studio'da Verilere WPF Denetimleri Bağlama

WCF Data Services Overview

Entity Framework Overview

Veri Bağlamaya Genel Bakış

Diğer Kaynaklar

WPF Tasarımcısı genel bakış