Aracılığıyla paylaş


.NET Framework uygulamalarında verilere WPF denetimleri bağlama

Uyarı

Sınıf DataSet 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. Teknolojiler ö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ümeleri başarısı kanıtlanmış bir teknoloji olsa da, yeni .NET uygulamaları için önerilen yaklaşım Entity Framework Core kullanmaktır. 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.

Verileri WPF denetimlerine bağlayarak uygulamanızın kullanıcılarına veri görüntüleyebilirsiniz. Bu veriye bağlı denetimleri oluşturmak için, Veri Kaynakları penceresindeki öğeleri Visual Studio'daki WPF Tasarımcısı'na sürükleyebilirsiniz. Bu konu başlığında, veriye bağlı WPF uygulamaları oluşturmak için kullanabileceğiniz en yaygın görev, araç ve sınıflardan bazıları açıklanmaktadır.

Visual Studio'da veriye bağlı denetimler oluşturma hakkında genel bilgi için bkz. Visual Studio'da verilere denetim bağlama. WPF veri bağlama hakkında daha fazla bilgi için bkz. Veri Bağlamaya Genel Bakış.

WPF denetimlerini verilere bağlamayla ilgili görevler

Aşağıdaki tabloda, öğeleri Veri Kaynakları penceresinden WPF Tasarımcısı'na sürükleyerek gerçekleştirilebilecek görevler listelenmiştir.

Görev Daha fazla bilgi
Yeni veriye bağlı denetimler oluşturun.

Mevcut denetimleri verilere bağlama.
WPF denetimlerini bir veri kümesine bağlama
Bir üst-alt ilişkide ilgili verileri görüntüleyen denetimler oluşturun: Kullanıcı bir denetimde bir üst veri kaydı seçtiğinde, başka bir denetim seçili kayıt için ilgili alt verileri görüntüler. WPF uygulamalarında ilgili verileri görüntüleme
Bir tablodaki bilgileri başka bir tablodaki yabancı anahtar alanının değerine göre görüntüleyen bir arama tablosu oluşturun. WPF uygulamalarında arama tabloları oluşturma
Veritabanındaki bir görüntüye denetim bağlama. Veritabanından resimlere denetim bağlama

Geçerli bırakma hedefleri

Veri Kaynakları penceresindeki öğeleri yalnızca WPF Tasarımcısı'ndaki geçerli bırakma hedeflerine sürükleyebilirsiniz. geçerli bırakma hedeflerinin iki ana türü vardır: kapsayıcılar ve denetimler. Kapsayıcı, genellikle denetimler içeren bir kullanıcı arabirimi öğesidir. Örneğin, kılavuz bir kapsayıcıdır ve pencere de öyledir.

Oluşturulan XAML ve kod

Veri Kaynakları penceresinden WPF Tasarımcısı'na bir öğe sürüklediğinizde, Visual Studio yeni bir veriye bağlı denetimi tanımlayan (veya mevcut bir denetimi veri kaynağına bağlayan) XAML oluşturur. Bazı veri kaynakları için Visual Studio, arka planda kod dosyasında veri kaynağını verilerle dolduran kod da oluşturur.

Aşağıdaki tabloda, Visual Studio'nun Veri Kaynakları penceresindeki her veri kaynağı türü için oluşturduğu XAML ve kod listelenir.

Veri kaynağı Bir denetimi veri kaynağına bağlayan XAML oluşturma Veri kaynağını verilerle dolduran kod oluşturma
Veri kümesi Evet Evet
Varlık Veri Modeli Evet Evet
Hizmet Evet Hayı
Nesne Evet Hayı

Veri Setleri

Veri Kaynakları penceresinden tasarımcıya bir tablo veya sütun sürüklediğinizde, Visual Studio aşağıdakileri yapmak için XAML oluşturur:

  • Veri kümesini ve yeni bir CollectionViewSource öğesini, öğeyi sürüklediğiniz kapsayıcının kaynaklarına ekler. CollectionViewSource veri kümesinde gezinmek ve verileri görüntülemek için kullanılabilecek bir nesnedir.

  • Denetim için bir veri bağlaması oluşturur. Öğeyi tasarımcıda var olan bir denetime sürüklerseniz, XAML denetimi öğeye bağlar. Öğeyi bir kapsayıcıya sürüklerseniz, XAML sürüklenen öğe için seçilen denetimi oluşturur ve denetimi öğeye bağlar. Denetim yeni bir Grid içinde oluşturulur.

Visual Studio arka planda kod dosyasında da aşağıdaki değişiklikleri yapar:

  • Denetimi içeren ui öğesi için bir Loaded olay işleyicisi oluşturur. Olay işleyicisi tabloyu verilerle doldurur, CollectionViewSource öğesini kapsayıcının kaynaklarından alır ve ardından ilk veri öğesini geçerli öğe yapar. Bir Loaded olay işleyicisi zaten varsa, Visual Studio bu kodu mevcut olay işleyicisine ekler.

Varlık veri modelleri

Veri Kaynakları penceresinden bir varlığı veya varlık özelliğini tasarımcıya sürüklediğinizde, Visual Studio aşağıdakileri yapmak için XAML oluşturur:

  • Öğeyi sürüklediğiniz kapsayıcının kaynaklarına yeni bir CollectionViewSource ekler. CollectionViewSource, varlıkta gezinmek ve verileri görüntülemek için kullanılabilecek bir nesnedir.

  • Denetim için bir veri bağlaması oluşturur. Öğeyi tasarımcıda var olan bir denetime sürüklerseniz, XAML denetimi öğeye bağlar. Öğeyi bir kapsayıcıya sürüklerseniz, XAML sürüklenen öğe için seçilen denetimi oluşturur ve denetimi öğeye bağlar. Denetim yeni bir Grid içinde oluşturulur.

Visual Studio arka planda kod dosyasında da aşağıdaki değişiklikleri yapar:

  • Tasarımcıya sürüklediğiniz varlık (veya tasarımcıya sürüklediğiniz özelliği içeren varlık) için sorgu döndüren yeni bir yöntem ekler. Yeni yöntemin adı Get<EntityName>Query, burada \<EntityName> varlığın adıdır.

  • Denetimi içeren ui öğesi için bir Loaded olay işleyicisi oluşturur. Olay işleyicisi, varlığı verilerle doldurmak için Get<EntityName>Query yöntemini çağırır, ardından CollectionViewSource öğesini kapsayıcının kaynaklarından alır ve ilk veri öğesini geçerli öğe yapar. Bir Loaded olay işleyicisi zaten varsa, Visual Studio bu kodu mevcut olay işleyicisine ekler.

Hizmetler

Veri Kaynakları penceresinden bir hizmet nesnesini veya özelliğini tasarımcıya sürüklediğinizde, Visual Studio veriye bağlı bir denetim oluşturan (veya var olan bir denetimi nesneye veya özelliğe bağlayan) XAML oluşturur. Ancak, Visual Studio ara sunucu hizmeti nesnesini verilerle dolduran kod oluşturmaz. Bu kodu kendiniz yazmanız gerekir. Bunun nasıl yapıldığını gösteren bir örnek için bkz. WPF denetimlerini WCF veri hizmetine bağlama.

Visual Studio'nun oluşturduğu XAML, aşağıdakileri yapar:

  • Öğeyi sürüklediğiniz kapsayıcının kaynaklarına yeni CollectionViewSource bir ekler. CollectionViewSource, hizmet tarafından döndürülen nesnede verilerde gezinmek ve verileri görüntülemek için kullanılabilecek bir nesnedir.

  • Denetim için bir veri bağlaması oluşturur. Öğeyi tasarımcıda var olan bir denetime sürüklerseniz, XAML denetimi öğeye bağlar. Öğeyi bir kapsayıcıya sürüklerseniz, XAML sürüklenen öğe için seçilen denetimi oluşturur ve denetimi öğeye bağlar. Denetim yeni bir Grid içinde oluşturulur.

Nesneler

Veri Kaynakları penceresinden bir nesneyi veya özelliği tasarımcıya sürüklediğinizde, Visual Studio veriye bağlı bir denetim oluşturan (veya var olan bir denetimi nesneye veya özelliğe bağlayan) XAML oluşturur. Ancak, Visual Studio nesneyi verilerle doldurmak için kod oluşturmaz. Bu kodu kendiniz yazmanız gerekir.

Uyarı

Özel sınıfların ortak olması ve varsayılan olarak parametresiz bir oluşturucuya sahip olması gerekir. "Sözdizimlerinde 'nokta' bulunan sınıflar iç içe yerleştirilemez." Daha fazla bilgi için bkz. WPF için XAML ve özel sınıflar.

Visual Studio, aşağıdakileri yapan XAML oluşturur:

  • Öğeyi sürüklediğiniz kapsayıcının kaynaklarına yeni bir CollectionViewSource ekler. CollectionViewSource, nesnede gezinmek ve verileri görüntülemek için kullanılabilecek bir nesnedir.

  • Denetim için bir veri bağlaması oluşturur. Öğeyi tasarımcıda var olan bir denetime sürüklerseniz, XAML denetimi öğeye bağlar. Öğeyi bir kapsayıcıya sürüklerseniz, XAML sürüklenen öğe için seçilen denetimi oluşturur ve denetimi öğeye bağlar. Denetim yeni bir Grid içinde oluşturulur.

Ayrıca bakınız