Aracılığıyla paylaş


BindingSource Bileşeni Mimarisi

bileşeniyle BindingSource , tüm Windows Forms denetimlerini veri kaynaklarına evrensel olarak bağlayabilirsiniz.

Bileşen, BindingSource denetimleri bir veri kaynağına bağlama işlemini basitleştirir ve geleneksel veri bağlamaya göre aşağıdaki avantajları sağlar:

  • İş nesnelerine tasarım zamanı bağlamayı etkinleştirir.

  • İşlevselliği kapsüller CurrencyManager ve tasarım zamanında olayları kullanıma sunar CurrencyManager .

  • Yerel olarak liste değişikliği bildirimini IBindingList desteklemeyen veri kaynakları için liste değişikliği bildirimi sağlayarak arabirimi destekleyen bir liste oluşturmayı kolaylaştırır.

  • yöntemi için IBindingList.AddNew bir genişletilebilirlik noktası sağlar.

  • Veri kaynağı ile denetim arasında bir dolaylılık düzeyi sağlar. Bu dolaylılık, veri kaynağının çalışma zamanında değişebileceği durumlarda önemlidir.

  • Verilerle ilgili diğer Windows Forms denetimleriyle, özellikle BindingNavigator ve denetimleriyle DataGridView birlikte çalışabilir.

Bu nedenlerden dolayı bileşen, BindingSource Windows Forms denetimlerinizi veri kaynaklarına bağlamanın tercih edilen yoludur.

BindingSource Özellikleri

Bileşen, BindingSource denetimleri verilere bağlamaya yönelik çeşitli özellikler sağlar. Bu özelliklerle, neredeyse hiç kodlama içermeyen veri bağlama senaryolarının çoğunu uygulayabilirsiniz.

Bileşen, BindingSource birçok farklı türdeki veri kaynağına erişmek için tutarlı bir arabirim sağlayarak bunu gerçekleştirir. Bu, herhangi bir türe bağlama için aynı yordamı kullandığınız anlamına gelir. Örneğin, bir veya iş nesnesine DataSet özelliğini ekleyebilirsiniz DataSource ve her iki durumda da veri kaynağını işlemek için aynı özellik, yöntem ve olay kümesini kullanırsınız.

Bileşen tarafından BindingSource sağlanan tutarlı arabirim, verileri denetimlere bağlama işlemini büyük ölçüde basitleştirir. Değişiklik bildirimi sağlayan veri kaynağı türleri için bileşen, BindingSource denetimle veri kaynağı arasındaki değişiklikleri otomatik olarak iletir. Değişiklik bildirimi sağlamayan veri kaynağı türleri için, değişiklik bildirimleri oluşturmanızı sağlayan olaylar sağlanır. Aşağıdaki listede bileşen tarafından desteklenen özellikler gösterilmektedir BindingSource :

Yöneltme

Bileşen, BindingSource bir denetim ile veri kaynağı arasında bir dolaylılık düzeyi sağlar. Bir denetimi doğrudan bir veri kaynağına bağlamak yerine, denetimi öğesine BindingSourcebağlarsınız ve veri kaynağını bileşenin BindingSourceDataSource özelliğine eklersiniz.

Bu dolaylılık düzeyiyle, denetim bağlamasını sıfırlamadan veri kaynağını değiştirebilirsiniz. Bu size aşağıdaki özellikleri sağlar:

Para Birimi Yönetimi

Bileşen, BindingSource sizin için para birimi yönetimini işlemek için arabirimini uygular ICurrencyManagerProvider . arabirimiyleICurrencyManagerProvider, aynı ile ilişkili başka BindingSource bir için para birimi yöneticisine ek olarak bir BindingSourceiçin para birimi yöneticisine DataMemberde erişebilirsiniz.

Bileşen BindingSource , işlevselliği kapsüller CurrencyManager ve en yaygın CurrencyManager özellikleri ve olayları kullanıma sunar. Aşağıdaki tabloda para birimi yönetimiyle ilgili bazı üyeler açıklanmaktadır.

CurrencyManager Özellik
ile ilişkili para birimi yöneticisini BindingSourcealır.

GetRelatedCurrencyManager Yöntem
Belirtilen veri üyesine başka bir BindingSource sınır varsa, para birimi yöneticisini alır.

Current Özellik
Veri kaynağının geçerli öğesini alır.

Position Özellik
Temel alınan listedeki geçerli konumu alır veya ayarlar.

EndEdit Yöntem
Temel alınan veri kaynağına bekleyen değişiklikleri uygular.

CancelEdit Yöntem
Geçerli düzenleme işlemini iptal eder.

Liste Olarak Veri Kaynağı

BindingSource bileşen ve ITypedList arabirimlerini uygularIBindingListView. Bu uygulamayla, bileşenin BindingSource kendisini herhangi bir dış depolama alanı olmadan bir veri kaynağı olarak kullanabilirsiniz.

BindingSource Bileşen bir veri kaynağına eklendiğinde, veri kaynağını liste olarak kullanıma sunar.

DataSource özelliği çeşitli veri kaynaklarına ayarlanabilir. Bunlar türler, nesneler ve tür listeleridir. Sonuçta elde edilen veri kaynağı liste olarak gösterilir. Aşağıdaki tabloda bazı yaygın veri kaynakları ve sonuçta elde edilen liste değerlendirmesi gösterilmektedir.

DataSource özelliği Sonuçları listeleme
Null başvuru (Nothing Visual Basic'te) Nesnelerden oluşan bir boş IBindingList . Öğe ekleme, listeyi eklenen öğenin türüne ayarlar.
Ayarlanmış null başvuru (NothingVisual Basic'te)DataMember Desteklenmez; öğesini yükseltir ArgumentException.
Liste dışı tür veya "T" türündeki nesne "T" türünde bir boş IBindingList .
Dizi örneği IBindingList Dizi öğelerini içeren.
IEnumerable Örnek Öğeleri içeren bir IBindingListIEnumerable
"T" türü içeren liste örneği IBindingList"T" türü içeren bir örnek.

Ayrıca, DataSource ve ITypedListgibi IListSource diğer liste türlerine ayarlanabilir ve BindingSource bunları uygun şekilde işler. Bu durumda, listede yer alan türün parametresiz bir oluşturucuya sahip olması gerekir.

IBindingList olarak BindingSource

Bileşen, BindingSource temel alınan verilere bir olarak IBindingListerişmeye ve verileri işlemeye yönelik üyeler sağlar. Aşağıdaki tabloda bu üyelerden bazıları açıklanmaktadır.

Üye Tanım
List Özellik veya DataMember özelliklerinin değerlendirilmesinden DataSource kaynaklanan listeyi alır.
AddNew Yöntem Temel alınan listeye yeni bir öğe ekler. Arabirimi uygulayan ve öğelerin eklenmesine IBindingList izin veren veri kaynakları için geçerlidir (yani özelliği AllowNew olarak trueayarlanır).

Özel Öğe Oluşturma

Kendi öğe oluşturma mantığınızı sağlamak için olayı işleyebilirsiniz AddingNew . Olay, AddingNew öğesine yeni bir nesne eklenmeden BindingSourceönce gerçekleşir. Bu olay, yöntemi çağrıldıktan sonra AddNew ancak yeni öğe temel alınan listeye eklenmeden önce oluşturulur. Bu olayı işleyerek, sınıfından BindingSource türetilmeden özel öğe oluşturma davranışı sağlayabilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms BindingSource ile Öğe Eklemeyi Özelleştirme.

İşlem Öğesi Oluşturma

BindingSource Bileşen, işlem öğesi oluşturmayı etkinleştiren arabirimini uygularICancelAddNew. Çağrısı kullanılarak AddNewyeni bir öğe geçici olarak oluşturulduktan sonra, ekleme aşağıdaki yollarla işlenebilir veya geri alınabilir:

  • EndNew yöntemi, bekleyen toplamayı açıkça işler.

  • Ekleme, kaldırma veya taşıma gibi başka bir koleksiyon işlemi gerçekleştirmek, bekleyen toplamayı örtük olarak işler.

  • CancelNew yöntemi henüz işlenmemişse bekleyen toplamayı geri alır.

IEnumerable Desteği

Bileşen, BindingSource denetimlerin veri kaynaklarına bağlanmasına IEnumerable olanak tanır. Bu bileşenle, gibi System.Data.SqlClient.SqlDataReaderbir veri kaynağına bağlanabilirsiniz.

Bileşene BindingSource bir IEnumerable veri kaynağı atandığında , BindingSource bir IBindingList oluşturur ve veri kaynağının IEnumerable içeriğini listeye ekler.

Tasarım Zamanı Desteği

Fabrika sınıfından oluşturulan nesneler veya Web hizmeti tarafından döndürülen nesneler gibi bazı nesne türleri tasarım zamanında oluşturulamaz. Bellekte denetimlerinizin bağlanabileceği bir nesne olmasa bile, bazen denetimlerinizi tasarım zamanında bu türlere bağlamanız gerekebilir. Örneğin, bir DataGridView denetimin sütun üst bilgilerini özel türünüzün genel özelliklerinin adlarıyla etiketlemeniz gerekebilir.

Bu senaryoyu BindingSource desteklemek için bileşen bir bağlamayı Typedestekler. özelliğine bir Type atadığınızda, BindingSource bileşen öğelerden oluşan Type boş BindingList<T> bir öğe DataSource oluşturur. Bileşene BindingSource daha sonra bağladığınız tüm denetimler, tasarım zamanında veya çalışma zamanında türünüzün özelliklerinin veya şemasının varlığı konusunda uyarılır. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms Denetimini Türe Bağlama.

Static ListBindingHelper Yöntemleri

, ve türleri, bir çiftten/DataSourceDataMember liste oluşturmak için ortak mantığın tümünü paylaşır.BindingSourceSystem.Windows.Forms.CurrencyManagerSystem.Windows.Forms.BindingContext Ayrıca, bu ortak mantık aşağıdaki static yöntemlerde denetim yazarları ve diğer üçüncü taraflar tarafından kullanılmak üzere genel kullanıma sunulur:

IBindingListView Arabirimi ile Sıralama ve Filtreleme

BindingSource Bileşen arabirimini IBindingListView uygulayarak arabirimi genişletirIBindingList. tek IBindingList sütunlu sıralama, IBindingListView gelişmiş sıralama ve filtreleme sunar. ile IBindingListView, veri kaynağı bu arabirimlerden birini de uyguluyorsa, veri kaynağındaki öğeleri sıralayabilir ve filtreleyebilirsiniz. Bileşen, BindingSource bu üyelerin başvuru uygulamasını sağlamaz. Bunun yerine, çağrılar temel alınan listeye iletilir.

Aşağıdaki tabloda, sıralama ve filtreleme için kullandığınız özellikler açıklanmaktadır.

Üye Tanım
Filter Özellik Veri kaynağı bir IBindingListViewise, hangi satırların görüntüleneceğini filtrelemek için kullanılan ifadeyi alır veya ayarlar.
Sort Özellik Veri kaynağı bir IBindingListise, sıralama ve sıralama düzeni bilgileri için kullanılan bir sütun adını alır veya ayarlar.

-veya-

Veri kaynağı bir IBindingListView ise ve gelişmiş sıralamayı destekliyorsa, sıralama ve sıralama düzeni için kullanılan birden çok sütun adını alır

BindingNavigator ile tümleştirme

Herhangi bir Windows Forms denetimini bir veri kaynağına bağlamak için bileşenini kullanabilirsiniz BindingSource , ancak BindingNavigator denetim özellikle bileşenle BindingSource çalışacak şekilde tasarlanmıştır. Denetim, BindingNavigator bileşenin BindingSource geçerli öğesini denetlemek için bir kullanıcı arabirimi sağlar. Varsayılan olarak, BindingNavigator denetim bileşendeki BindingSource gezinti yöntemlerine karşılık gelen düğmeler sağlar. Daha fazla bilgi için bkz . Nasıl yapılır: Windows Forms BindingNavigator Denetimi ile Verilerde Gezinme.

Ayrıca bkz.