.NET Framework uygulamalarında WPF denetimlerini bir veri kümesine bağlama
Not
Veri kümeleri ve ilgili sınıflar, uygulamaların veritabanıyla bağlantısı kesilirken uygulamaların bellekteki verilerle çalışmasını sağlayan 2000'lerin başlarındaki eski .NET Framework teknolojileridir. Bunlar özellikle kullanıcıların verileri değiştirmesine ve değişiklikleri veritabanında kalıcı hale getirebilmesine olanak tanıyan uygulamalar için kullanışlıdır. Veri kümelerinin çok başarılı bir teknoloji olduğu kanıtlanmış olsa da, yeni .NET uygulamalarının Entity Framework Core kullanmasını öneririz. Entity Framework, tablosal verilerle nesne modelleri olarak çalışmak için daha doğal bir yol sağlar ve daha basit bir programlama arabirimine sahiptir.
Bu kılavuzda, veriye bağlı denetimler içeren bir WPF uygulaması oluşturursunuz. Denetimler, bir veri kümesinde kapsüllenmiş olan ürün kayıtlarına bağlıdır. Ayrıca, ürünlere göz atmak ve değişiklikleri ürün kayıtlarında kaydetmek için düğmeler eklersiniz.
Bu izlenecek yol aşağıdaki görevleri gösterir:
AdventureWorksLT örnek veritabanındaki verilerden oluşturulan bir WPF uygulaması ve veri kümesi oluşturma.
Bir veri tablosunu Veri Kaynakları penceresinden WPF Tasarım Aracı bir pencereye sürükleyerek veriye bağlı denetimler kümesi oluşturma.
Ürün kayıtları arasında ileri ve geri gezinen düğmeler oluşturma.
Kullanıcıların ürün kayıtlarında yaptığı değişiklikleri veri tablosuna ve temel alınan veri kaynağına kaydeden bir düğme oluşturma.
Not
Bilgisayarınız bu makaledeki Bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Visual Studio'nun farklı bir sürümünü veya farklı ortam ayarlarını kullanıyor olabilirsiniz. Daha fazla bilgi için bkz . IDE'yi kişiselleştirme.
Önkoşullar
Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:
Bu öğreticiyi tamamlamak için Visual Studio'da yüklü .NET masaüstü geliştirme ve Veri depolama ve işleme iş yüklerine ihtiyacınız vardır. Bunları yüklemek için Visual Studio Yükleyicisi açın ve değiştirmek istediğiniz Visual Studio sürümünün yanındaki Değiştir (veya Daha Fazla>Değiştir) öğesini seçin. Bkz. Visual Studio'yu değiştirme.
AdventureWorks Light (AdventureWorksLT) örnek veritabanının bağlı olduğu çalışan bir SQL Server veya SQL Server Express örneğine erişim. Veritabanını indirmek için bkz . AdventureWorks örnek veritabanları.
Aşağıdaki kavramlar hakkında önceden bilgi sahibi olmak da yararlıdır, ancak izlenecek yolu tamamlamak için gerekli değildir:
Veri kümeleri ve TableAdapters. Daha fazla bilgi için bkz . Visual Studio ve TableAdapters'daki veri kümesi araçları.
WPF veri bağlama. Daha fazla bilgi için bkz . Veri Bağlamaya Genel Bakış.
Proje oluşturma
Ürün kayıtlarını görüntülemek için yeni bir WPF projesi oluşturun.
Visual Studio'yu açın.
Başlangıç penceresinde Yeni proje oluştur'u seçin.
C# WPF Uygulaması proje şablonunu arayın ve projeyi oluşturmak için adımları izleyin ve projeyi AdventureWorksProductsEditor olarak adlandırın.
Visual Studio, AdventureWorksProductsEditor projesini oluşturur.
Uygulama için veri kümesi oluşturma
Veriye bağlı denetimler oluşturabilmeniz için önce uygulamanız için bir veri modeli tanımlamanız ve bunu Veri Kaynakları penceresine eklemeniz gerekir. Bu kılavuzda, veri modeli olarak kullanılacak bir veri kümesi oluşturacaksınız.
Veri menüsünde Veri Kaynaklarını Göster'e tıklayın.
Veri Kaynakları penceresi açılır.
Veri Kaynakları penceresinde Yeni Veri Kaynağı Ekle'ye tıklayın.
Veri Kaynağı Yapılandırma sihirbazı açılır.
Veri Kaynağı Türü Seçin sayfasında Veritabanı'nı seçin ve İleri'ye tıklayın.
Veritabanı Modeli Seçin sayfasında Veri Kümesi'ni seçin ve ardından İleri'ye tıklayın.
Verilerinizi seçin Bağlan sayfasında aşağıdaki seçeneklerden birini belirleyin:
Açılan listede AdventureWorksLT örnek veritabanına bir veri bağlantısı varsa, bunu seçin ve İleri'ye tıklayın.
Yeni Bağlan ion'a tıklayın ve AdventureWorksLT veritabanına bir bağlantı oluşturun.
Bağlan Dizesini Uygulama Yapılandırma Dosyası'na Kaydet sayfasında Evet, bağlantıyı farklı kaydet onay kutusunu seçin ve İleri'ye tıklayın.
Veritabanı Nesnelerinizi Seçin sayfasında Tablolar'ı genişletin ve ardından Ürün (SalesLT) tablosunu seçin.
Finish (Son) düğmesine tıklayın.
Visual Studio projeye yeni
AdventureWorksLTDataSet.xsd
bir dosya ekler ve Veri Kaynakları penceresine ilgili AdventureWorksLTDataSet öğesini ekler. Dosya,AdventureWorksLTDataSet.xsd
adlı bir türlenmiş veri kümesini ve adlıAdventureWorksLTDataSet
ProductTableAdapter
bir TableAdapter'ı tanımlar. Bu kılavuzun ilerleyen bölümlerinde veri kümesini verilerle doldurmak ve değişiklikleri veritabanına geri kaydetmek için kullanacaksınızProductTableAdapter
.Projeyi derleyin.
TableAdapter'ın varsayılan doldurma yöntemini düzenleme
Veri kümesini verilerle doldurmak için yöntemini ProductTableAdapter
kullanınFill
. Varsayılan olarak, Fill
yöntemi içindekini ProductDataTable
AdventureWorksLTDataSet
Product tablosundaki tüm veri satırlarıyla doldurur. Bu yöntemi satırların yalnızca bir alt kümesini döndürecek şekilde değiştirebilirsiniz. Bu izlenecek yol için yöntemini değiştirerek yalnızca fotoğraf içeren ürünlerin satırlarını döndürün Fill
.
Çözüm Gezgini'da AdventureWorksLTDataSet.xsd dosyasına çift tıklayın.
Veri kümesi tasarımcısı açılır.
Tasarımcıda Fill, GetData() sorgusuna sağ tıklayın ve Yapılandır'ı seçin.
TableAdapter Yapılandırma sihirbazı açılır.
SQL Deyimi Girin sayfasında, metin kutusuna deyiminden
SELECT
sonra aşağıdakiWHERE
yan tümceyi ekleyin.WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
Finish (Son) düğmesine tıklayın.
Kullanıcı arabirimini tanımlama
WPF Tasarım Aracı XAML'yi değiştirerek pencereye birkaç düğme ekleyin. Bu kılavuzun ilerleyen bölümlerinde, kullanıcıların bu düğmeleri kullanarak ürün kayıtlarında gezinmesini ve değişiklikleri kaydetmesini sağlayan kod ekleyebilirsiniz.
Çözüm Gezgini mainwindow.xaml öğesine çift tıklayın.
Pencere WPF Tasarım Aracı açılır.
Tasarımcının XAML görünümünde etiketler arasına
<Grid>
aşağıdaki kodu ekleyin:<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="625" /> </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 derleyin.
Veriye bağlı denetimler oluşturma
Tabloyu Veri Kaynakları penceresinden WPF Tasarım Aracı sürükleyerek Product
müşteri kayıtlarını görüntüleyen denetimler oluşturun.
Veri Kaynakları penceresinde, Ürün düğümü için açılan liste menüsüne tıklayın ve Ayrıntılar'ı seçin.
Ürün düğümünü genişletin.
Bu örnekte bazı alanlar görüntülenmez, bu nedenle aşağıdaki düğümlerin yanındaki açılan liste menüsüne tıklayın ve Hiçbiri'ni seçin:
ProductCategoryID
Productmodelıd
ThumbnailPhotoFileName
Rowguıd
Modifieddate
ThumbNailPhoto düğümünün yanındaki açılan liste menüsüne tıklayın ve Görüntü'yü seçin.
Not
Varsayılan olarak, Veri Kaynakları penceresinde resimleri temsil eden öğelerin varsayılan denetimi Yok olarak ayarlanır. Bunun nedeni, resimlerin veritabanlarında bayt dizileri olarak depolanması ve bayt dizilerinin basit bir bayt dizisinden büyük bir uygulamanın yürütülebilir dosyasına kadar her şeyi içermesidir.
Veri Kaynakları penceresinden Ürün düğümünü düğmeleri içeren satırın altındaki kılavuz satırına sürükleyin.
Visual Studio, Products tablosundaki verilere bağlı bir denetim kümesini tanımlayan XAML oluşturur. Ayrıca verileri yükleyen kod da oluşturur. Oluşturulan XAML ve kod hakkında daha fazla bilgi için bkz . Visual Studio'daki verilere WPF denetimlerini bağlama.
Tasarımcıda, Ürün Kimliği etiketinin yanındaki metin kutusuna tıklayın.
Özellikler penceresinde IsReadOnly özelliğinin yanındaki onay kutusunu seçin.
Ürün kayıtlarında gezinme
ve düğmelerini kullanarak kullanıcıların ürün kayıtlarında gezinmesini <> sağlayan kod ekleyin.
Tasarımcıda, pencere yüzeyindeki < düğmeye çift tıklayın.
Visual Studio arka planda kod dosyasını açar ve olay için yeni
backButton_Click
bir olay işleyicisi Click oluşturur., ve yönteminin
Window_Loaded
dışında olacak veAdventureWorksLTDataSetProductTableAdapter
formunProductViewSource
AdventureWorksLTDataSet
tamamına erişilebilecek şekilde olay işleyicisini değiştirin. Yalnızca bunları forma genel olarak bildirin ve aşağıdakine benzer şekilde olay işleyicisi içindeWindow_Loaded
atayın: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(); }
Olay işleyicisine
backButton_Click
aşağıdaki kodu ekleyin:Tasarımcıya dönün ve düğmeye > çift tıklayın.
Olay işleyicisine
nextButton_Click
aşağıdaki kodu ekleyin:
Ürün kayıtlarında yapılan değişiklikleri kaydetme
Kullanıcıların Değişiklikleri kaydet düğmesini kullanarak ürün kayıtlarında değişiklikleri kaydetmesini sağlayan kod ekleyin.
Tasarımcıda Değişiklikleri kaydet düğmesine çift tıklayın.
Visual Studio arka planda kod dosyasını açar ve olay için yeni
saveButton_Click
bir olay işleyicisi Click oluşturur.Olay işleyicisine
saveButton_Click
aşağıdaki kodu ekleyin:Not
Bu örnek, değişiklikleri kaydetmek için yöntemini
TableAdapter
kullanırSave
. Yalnızca bir veri tablosu değiştirildiğinden, bu kılavuzda bu uygundur. Değişiklikleri birden çok veri tablosuna kaydetmeniz gerekiyorsa alternatif olarak, Visual Studio'nunTableAdapterManager
veri kümenizle oluşturduğu yöntemini kullanabilirsinizUpdateAll
. Daha fazla bilgi için bkz . TableAdapters.
Uygulamayı test etme
Uygulamayı derleyin ve çalıştırın. Ürün kayıtlarını görüntüleyebildiğinizi ve güncelleştirebildiğinizi doğrulayın.
F5 tuşuna basın.
Uygulama derlenip çalışır. Aşağıdakileri doğrulayın:
Metin kutuları, fotoğrafı olan ilk ürün kaydındaki verileri görüntüler. Bu ürün 713 ürün kimliğine ve Long-Sleeve Logo Jersey, S adına sahiptir.
Diğer ürün kayıtlarında > gezinmek için veya < düğmelerine tıklayabilirsiniz.
Ürün kayıtlarından birinde Boyut değerini değiştirin ve ardından Değişiklikleri kaydet'e tıklayın.
Uygulamayı kapatın ve ardından Visual Studio'da F5 tuşuna basarak uygulamayı yeniden başlatın.
Değiştirdiğiniz ürün kaydına gidin ve değişikliğin kalıcı olduğunu doğrulayın.
Uygulamayı kapatın.
Sonraki adımlar
Bu kılavuzu tamamladıktan sonra aşağıdaki ilgili görevleri deneyebilirsiniz:
Wpf denetimlerini diğer veri kaynağı türlerine bağlamak için Visual Studio'daki Veri Kaynakları penceresini kullanmayı öğrenin. Daha fazla bilgi için bkz . WPF denetimlerini WCF veri hizmetine bağlama.
WPF denetimlerinde ilgili verileri (yani bir üst-alt ilişkideki verileri) görüntülemek için Visual Studio'daki Veri Kaynakları penceresini kullanmayı öğrenin. Daha fazla bilgi için bkz . İzlenecek yol: WPF uygulamasında ilgili verileri görüntüleme.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin