İ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:
WCF Veri Hizmetleri.Daha fazla bilgi için WCF Data Services Overview.
Veri modelleri içinde WCF Veri Hizmetleri.
Varlık veri modeli ve ADO.NET Entity Framework.Daha fazla bilgi için Entity Framework Overview.
WPF Tasarımcısı ile çalışıyor.Daha fazla bilgi için WPF Tasarımcısı genel bakış.
WPF veri bağlama.Daha fazla bilgi için Veri Bağlamaya Genel Bakış.
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
Visual Studio'yu başlatın.
Dosya menüsünde, Yeni öğesinin üzerine gelin ve Proje seçeneğine tıklayın.
Genişletme Visual C# veya Visual Basic, seçip Web.
Seçin ASP.NET Web uygulaması proje şablonu.
İçindeki adı kutusuna AdventureWorksService tıklatıp Tamam.
Visual Studio oluşturur AdventureWorksService proje.
İç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
Üzerinde Proje menüsünde tıklatın Yeni Öğe Ekle.
Yüklü Şablonlar listesinde tıklatın veri, seçip ADO.NET varlık veri modeli proje öğesi.
Adına değiştirmek AdventureWorksModel.edmx olarak, tıklatıp Ekle.
Varlık veri modeli Sihirbazı açar.
Üzerinde Model içeriği seçin sayfasında, tıklatın veritabanından Oluştur, tıklatıp sonraki.
Ü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.
Ü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.
Üzerinde veritabanı nesnelerinizi sayfasında, genişletme tabloları, seçip SalesOrderHeader tablo.
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
Üzerinde Proje menüsü, select Yeni Öğe Ekle.
Yüklü Şablonlar listesinde tıklatın Web, seçip WCF veri hizmeti proje öğesi.
İç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
İç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.
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
İçindeki Çözüm Gezgini, çözüm düğümünü sağ tıklayın, Ekle, seçip Yeni proje.
İçindeki Yeni proje iletişim kutusunda, genişletme Visual C# veya Visual Basic, seçip Windows.
Seçin WPF uygulaması proje şablonu.
İçindeki adı kutusuna AdventureWorksSalesEditor tıklatıp Tamam.
Visual Studio ekler AdventureWorksSalesEditor proje çözüme.
Veri menüsünden Veri Kaynaklarını Göster'i tıklatın.
Veri kaynakları pencere açılır.
İçindeki veri kaynakları penceresinde tıklatın Yeni veri kaynağı Ekle.
Veri Kaynağı Yapılandırma Sihirbazı açılır.
İçindeki bir veri kaynağı türü seçin Sihirbazı'nı seçin, sayfa hizmet ve ardından sonraki.
İç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.
İçindeki ad alanı kutusuna AdventureWorksService.
İç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ı.
İç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
İçindeki Çözüm Gezgini, MainWindow.xaml çift tıklatın.
WPF Tasarımcısı'nda pencere açılır.
İç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"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
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
İçindeki veri kaynakları penceresinde, açılır menüsünü SalesOrderHeaders düğümü ve seçin ayrıntıları.
Genişletme SalesOrderHeaders düğümü.
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.
Öğ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.
Metin kutusunun yanındaki Tasarımcısı'nda tıklatın Müşteri Kimliği etiketi.
İçindeki özellikleri onay kutusunun yanındaki penceresinde select IsReadOnly özelliği.
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
Tasarımcıda okur metin çift tıklatın: MainWindow oluşturmak için Window_Loaded olay işleyicisi.
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
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.
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();
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.
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
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.
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
Üzerinde Yapı menüsünde tıklatın Yapı çözümü.Çözüm hatasız oluşturulduğunu doğrulayın.
Bas CTRL + F5.
Visual Studio başlatır AdventureWorksService hata ayıklama olmadan proje.
İçindeki Çözüm Gezgini, sağ AdventureWorksSalesEditor proje.
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.
Bir satış kayıtları bazı metni yazın Açıklama kutusunu işaretleyin ve ardından değişiklikleri kaydetmek.
Uygulamayı kapatın ve uygulama Visual Studio'dan yeniden başlatın.
Değiştirdiğiniz satış kayda gidin ve sonra uygulamayı kapatıp değişiklik devam doğrulayın.
Uygulamayı kapatın.
Sonraki Adımlar
Bu kılavuz tamamladıktan sonra aşağıdaki görevleri gerçekleştirebilirsiniz:
Kullanmayı öğrenin veri kaynakları Visual Studio'daki WPF bağlanacak başka bir veri kaynağı türleri için denetler.Daha fazla bilgi için İzlenecek yol: Bir Veri Kümesine WPF Denetimleri Bağlama.
Kullanmayı öğrenin veri kaynakları Visual Studio'daki WPF denetimlerini (yani, verileri üst-alt ilişkisinde) ilgili verileri görüntülemek için.Daha fazla bilgi için İzlenecek Yol: Bir WPF Uygulamasında İlgili Verileri Görüntüleme.
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