Aracılığıyla paylaş


İzlenecek yol: wpf denetimlerini Dataset nesnesine bağlama

Bu izlenecek yolda, oluşturmak veriye bağlı denetimler içeren bir WPF uygulama olacaktır.Denetimler, bir dataset içinde saklanmış ürün kayıtları bağlıdır.Ayrıca Gözat ile ürünleri ve ürün kayıtları değişiklikleri kaydetmek için düğmeleri ekler.

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

  • WPFuygulama ve AdventureWorksLT örnek veritabanıverilerden oluşturulan bir dataset oluşturma.

  • Bir veri tablosu sürükleyerek veriye bağlı denetimler kümesi oluşturma Veri kaynaklarıpencere WPF Tasarımcısı'nda bir pencere .

  • iletmek gider düğmeler oluşturma ve ürün kayıtları üzerinden geriye doğru.

  • Bir düğme oluşturma veri tablosu ve temel veri kaynağıürün kayıtları kullanıcılar yaptığınız değişiklikleri kaydeder.

    [!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ı indirmek yükleyebilirsiniz CodePlex Web sitesi.

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

Projeyi Oluşturma

Yeni bir WPF projeoluşturun.proje ürün kayıtları görüntüler.

Projeyi oluşturmak için

  1. Visual Studiobaşlatın.

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

  3. Genişletme Visual Basic veya **Visual C#**seçip Windows.

  4. Seçin WPF uygulamaprojeşablon.

  5. İçinde ad kutusuna yazın AdventureWorksProductsEditor 'ı tıklatın ve Tamam.

    Visual Studio oluşturur AdventureWorksProductsEditorproje.

Uygulama için bir Dataset yaratmak

Veriye bağlı denetimler oluşturmak için önce bir veri modeli tanımlamak için uygulama ve eklemek gerekir Veri kaynaklarıpencere. Bu izlenecek yolda, veri modeli olarak kullanmak için bir dataset oluşturmak .

oluşturmak için bir veri kümesi

  1. Üzerinde veri menütıklatın Show Data Sources.

    Veri kaynaklarıpencere açılır.

  2. İçinde Veri kaynakları penceretıklatın Add New Data Source.

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

  3. Üzerinde veri kaynağı türü seçin sayfası seçme veritabanıve ardından İleri.

  4. Üzerinde veritabanı modelini seç sayfası, select Dataset[NULL]'ı sonraki.

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

    • AdventureWorksLT örnek veritabanı için bir veri bağlantısı aşağı açılan listede varsa, seçin ve ardından İleri.

      -veya-

    • Tıklatın Yeni bir bağlantı ve AdventureWorksLT veritabanıbağlantısı oluşturmak ' ni.

  6. Üzerinde Bağlantı dizesini uygulama yapılandırma dosyasına kaydetmek sayfası, select bağlantı olarak'Evet, Kaydet onay kutusutıklatın ve sonra İleri.

  7. Üzerinde Choose Your Database Objects sayfasında, genişletmekTabloseçip Ürün (SalesLT) tablo.

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

    Visual Studio projeyeni bir AdventureWorksLTDataSet.xsd dosyası ekler ve buna karşılık gelen ekler AdventureWorksLTDataSet öğe Veri kaynaklarıpencere. AdventureWorksLTDataSet.xsd dosya adında bir typed dataset tanımlar AdventureWorksLTDataSet ve adlı bir TableAdapter ProductTableAdapter.Bu yönerge, kullanacağınız ProductTableAdapter dataset verilerle doldurmak ve geri veritabanıdeğişiklikleri kaydetmek için.

  9. Projeyi yapılandırın.

TableAdapter varsayılan dolgu yöntemini düzenleme

Dataset verilerle doldurmak için kullanmak Fill yöntem , ProductTableAdapter. Varsayılan olarak, Fill yöntem doldurur ProductDataTable , AdventureWorksLTDataSet ürün tablosundaki tüm satırları ile. Yalnızca satırların bir alt kümesini geri dönmek için bu yöntem değiştirebilirsiniz.Bu izlenecek yolda değiştirmek Filldönmek için yöntem fotoğrafları olan ürünler için yalnızca satırları.

Fotoğrafları olan ürün satırlarının yüklemek için

  1. İçinde Solution Explorer, AdventureWorksLTDataSet.xsd dosyasını çift tıklatın.

    Dataset Designer arabirimini açar.

  2. Tasarımcısı'nı sağ Fill,GetData() sorgu seçeneğini tıklatıp yapılandırma.

    TableAdapter Configuration Wizard açar.

  3. İçinde Enter bir SQL deyimi sayfasında, aşağıdaki where yan tümcesinden sonra ekleme SELECT metin kutusu hesap özeti .

    WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
    
  4. Son düğmesini tıklatın.

Kullanıcı arabirim tanımlama

Birçok düğme, pencere WPF Tasarımcısı XAML değiştirerek ekleyin.Bu yönerge, bu düğmeleri kullanarak ürün kayıtları yapılan değişiklikleri kaydetmek ve aracılığıyla kaydırmak kullanıcıların kodu ekleyeceksiniz.

pencere kullanıcıarabirim tanımlamak için

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

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

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

    <Grid.RowDefinitions>
        <RowDefinition Height="75" />
        <RowDefinition Height="625" />
    </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 Ürün gelen tablo Veri kaynakları WPF Designerpencere .

Veriye bağlı denetimler oluşturmak

  1. İçinde Veri kaynakları pencere, açılan menü için Ürün düğüm ve seçin Ayrıntıları.

  2. Genişletme Ürün düğüm.

  3. Bu örneğin bazı alanlar görüntülenmez böylece aşağıdaki düğümler yanındaki açılan menü tıklatın ve seçin yok:

    • ProductCategoryID

    • ProductModelID

    • ThumbnailPhotoFileName

    • ROWGUID

    • ModifiedDate

  4. açılan menü yanındaki tıklatın ThumbNailPhoto düğümü ve seçin Görüntü.

    [!NOT]

    Varsayılan olarak, öğelerinin Veri kaynakları resimleri temsil edenpencere ayarlamak kendi varsayılan denetime sahip yok. Bunun nedeni, resim olarak bayt dizileri veritabanlarında depolanır ve büyük bir uygulama çalıştırılabilir dosyasının bayt basit bir diziden bir şey bayt dizileri içerebilir olmasıdır.

  5. Dan Veri kaynakları pencere, Sürükle Ürün düğmeleri içeren satırı altında kılavuz satırını düğüm.

    Visual Studio oluşturur veriye bağlı denetimler kümesini tanımlayan bir XAML ürünleri tablo.Ayrıca, verileri yükler kodu üretir.Oluşturulan XAML ve kod hakkında daha fazla bilgi için bkz: wpf denetimleri Visual Studio veri.

  6. Tasarımcısı'nda metin kutusu yanındaki tıklatın Product IDetiket.

  7. İçinde özelliklerini pencereyanında onay kutusu seçin IsReadOnlyözellik.

Ürün kayıtlar arasında gezinme

Kullanarak ürün kayıtlar arasında ilerlemek kullanıcıların sağlayan kod eklemek < ve > düğmeleri.

Kullanıcıların ürün Kayıtlarda gezinmek etkinleştirmek için

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

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

  2. Değiştirmek Window_Loaded olay işleyicisi bu nedenle ProductViewSource, AdventureWorksLTDataSet, ve AdventureWorksLTDataSetProductTableAdapter yöntem dışında ve tüm formiçin erişilebilir. Yalnızca tanımlamak bu form, atamak genel içinde bunları Window_Loaded olay işleyicisi aşağıdakine benzer:

    Dim ProductViewSource As System.Windows.Data.CollectionViewSource
    Dim AdventureWorksLTDataSet As AdventureWorksProductsEditor.AdventureWorksLTDataSet
    Dim AdventureWorksLTDataSetProductTableAdapter As AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter
    
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        AdventureWorksLTDataSet = CType(Me.FindResource("AdventureWorksLTDataSet"), AdventureWorksProductsEditor.AdventureWorksLTDataSet)
        'Load data into the table Product. You can modify this code as needed.
        AdventureWorksLTDataSetProductTableAdapter = New AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()
        AdventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product)
        ProductViewSource = CType(Me.FindResource("ProductViewSource"), System.Windows.Data.CollectionViewSource)
        ProductViewSource.View.MoveCurrentToFirst()
    End Sub
    
    private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet;
    private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter;
    private System.Windows.Data.CollectionViewSource productViewSource;
    
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet")));
        // Load data into the table Product. You can modify this code as needed.
        adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();
        adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product);
        productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource")));
        productViewSource.View.MoveCurrentToFirst();
    }
    
  3. Aşağıdaki kodu ekleyip backButton_Click olay işleyicisi:

    If ProductViewSource.View.CurrentPosition > 0 Then
        ProductViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (productViewSource.View.CurrentPosition > 0)
    {
        productViewSource.View.MoveCurrentToPrevious();
    }
    
  4. İade Tasarımcısı ve çift > düğme.

  5. Aşağıdaki kodu ekleyip nextButton_Click olay işleyicisi:

    If ProductViewSource.View.CurrentPosition < CType(ProductViewSource.View, CollectionView).Count - 1 Then
        ProductViewSource.View.MoveCurrentToNext()
    End If
    
    if (productViewSource.View.CurrentPosition < ((CollectionView)productViewSource.View).Count - 1)
    {
        productViewSource.View.MoveCurrentToNext();
    }
    

Ürün kayıt değişiklikleri kaydetme

Kullanıcıların ürün kayıtları kullanarak kaydetmek kod ekleyin Değişiklikleri Kaydet düğme.

Ürün kayıt değişiklikleri kaydetme özelliği eklemek için

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

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

  2. Aşağıdaki kodu ekleyip saveButton_Click olay işleyicisi:

    AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
    
    adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
    

    [!NOT]

    Bu örnek Save yöntem , TableAdapter değişiklikleri kaydedin. Yalnızca bir veri tablosu değiştiğinden Bu izlenecek yolda, bu uygundur.Birden çok veri tablolarına değişiklikleri kaydetmek istiyorsanız, bunun yerine kullanabileceğiniz UpdateAll yöntem TableAdapterManager , Visual Studio , dataset ile oluşturur. Daha fazla bilgi için bkz. TableAdapterManager genel bakış.

Uygulamayı Test Etme

Uygulamayı oluşturup çalıştırın.Görebilirsiniz olduğunu doğrulayın ve ürün kayıtları güncelleştirme .

test için uygulama

  1. F5'e basın.

    uygulama oluşturur ve çalıştırır.Aşağıdakileri doğrulayın:

    • Metin kutuları fotoğraf sahip ilk ürün kaydı verileri görüntüler.Bu ürün ürün kimliği 713 ve adı olan uzun kılıf Logo Jersey, s.

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

  2. Bir ürün kayıtları değiştirmek boyutu değer ve i Değişiklikleri Kaydet.

  3. uygulamakapatın ve uygulama basarak yeniden F5 Visual Studio.

  4. Değiştirilen ürün kayda gidin ve değişikliği kalıcı olduğunu doğrulayın.

  5. uygulamakapatı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 denetimleri bir wcf veri hizmetine bağlama

Kavramlar

wpf denetimleri Visual Studio veri

DataSet'leri Visual Studio ile çalışma

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

Veri Bağlama Genel Bakış