BindingSource Bileşeni Mimarisi
BindingSourcebileşeniyle, tüm Windows Forms denetimlerini veri kaynaklarına evrensel olarak bağlayabilirsiniz.
BindingSourceBileşen bir veri kaynağına denetim bağlama sürecini basitleştirir ve geleneksel veri bağlama üzerinde aşağıdaki avantajları sağlar:
İş nesnelerine tasarım zamanı bağlamayı sağlar.
CurrencyManagerİşlevselliği kapsüller ve CurrencyManager olayları tasarım zamanında kullanıma sunar.
IBindingListListe değişikliği bildirimini yerel olarak desteklemeyen veri kaynakları için liste değişiklik bildirimi sağlayarak arabirimi destekleyen bir liste oluşturmayı basitleştirir.
Yöntemi için bir genişletilebilirlik noktası sağlar IBindingList.AddNew .
Veri kaynağı ile denetim arasında bir yöneltme düzeyi sağlar. Veri kaynağı çalışma zamanında değişebilir bu yöneltme önemlidir.
, özellikle ve denetimleri gibi verilerle ilgili diğer Windows Forms denetimleriyle birlikte çalışır BindingNavigator DataGridView .
bu nedenlerden dolayı bileşen, BindingSource Windows Forms denetimlerinizi veri kaynaklarına bağlamak için tercih edilen yoldur.
BindingSource özellikleri
BindingSourceBileşen, denetimleri verilere bağlamak için çeşitli özellikler sağlar. Bu özelliklerle, en çok veri bağlama senaryolarını, sizin bölüminizdeki neredeyse hiçbir kodlamaya sahip olacak şekilde uygulayabilirsiniz.
BindingSourceBu bileşen, 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ğlamak için aynı yordamı kullandığınız anlamına gelir. Örneğin, DataSource özelliğini bir DataSet veya bir iş nesnesine ekleyebilirsiniz 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 sunulan tutarlı arabirim, BindingSource verileri denetimlere bağlama sürecini büyük ölçüde basitleştirir. Değişiklik bildirimi sağlayan veri kaynağı türleri için, BindingSource bileşen denetim ve veri kaynağı arasındaki değişikliklere otomatik olarak iletişim kurar. Değişiklik bildirimi sağlamayan veri kaynağı türleri için, değişiklik bildirimleri yükseltmenize izin veren olaylar sağlanır. Aşağıdaki listede bileşen tarafından desteklenen özellikler gösterilmektedir BindingSource :
Yöneltme.
Para birimi yönetimi.
Liste olarak veri kaynağı.
BindingSource olarak bir IBindingList .
Özel öğe oluşturma.
İşlem öğesi oluşturma.
IEnumerable support.
Tasarım zamanı desteği.
Statik ListBindingHelper Yöntemler.
Arabirimiyle sıralama ve filtreleme IBindingListView .
İle tümleştirme BindingNavigator .
Yöneltme
BindingSourceBileşen, bir denetim ve veri kaynağı arasında bir yöneltme düzeyi sağlar. Bir denetimi doğrudan bir veri kaynağına bağlamak yerine, denetimi bir öğesine bağlarsınız BindingSource ve veri kaynağını BindingSource bileşenin özelliğine iliştirolursunuz DataSource .
Bu yöneltme düzeyiyle veri kaynağını denetim bağlamasını sıfırlamadan değiştirebilirsiniz. Bu size aşağıdaki olanakları sağlar:
BindingSourceGeçerli denetim bağlamalarını korurken, öğesini farklı veri kaynaklarına iliştirebilirsiniz.
Veri kaynağındaki öğeleri değiştirebilir ve bağlantılı denetimlere bildirimde bulabilirsiniz. daha fazla bilgi için bkz. nasıl yapılır: BindingSource ile Windows Forms denetimindeki veri kaynağı güncelleştirmelerini yansıtma.
TypeBellekteki bir nesne yerine öğesine bağlayabilirsiniz. daha fazla bilgi için bkz. nasıl yapılır: Windows Forms denetimini bir türe bağlama. Daha sonra çalışma zamanında bir nesneye bağlanabilirsiniz.
Para birimi yönetimi
BindingSourceBileşen, ICurrencyManagerProvider sizin için para birimi yönetimini işlemek üzere arabirimini uygular. Arabirimi ile, ICurrencyManagerProvider aynı zamanda bir diğeri için para birimi BindingSource yöneticisinin yanı sıra bir için para birimi yöneticisine da erişebilirsiniz BindingSource DataMember .
BindingSourceBileşen işlevleri Kapsüller CurrencyManager ve en sık kullanılan CurrencyManager özellikleri ve olayları gösterir. Aşağıdaki tabloda, para birimi yönetimiyle ilgili bazı Üyeler açıklanmaktadır.
CurrencyManager özelliði
İle ilişkili para birimi yöneticisini alır BindingSource .
GetRelatedCurrencyManager yöntemi
BindingSourceBelirtilen veri üyesine bir tane daha varsa, bu, para birimi yöneticisini alır.
Current özelliði
Veri kaynağının geçerli öğesini alır.
Position özelliði
Temel alınan listedeki geçerli konumu alır veya ayarlar.
EndEdit yöntemi
Temel alınan veri kaynağına bekleyen değişiklikleri uygular.
CancelEdit yöntemi
Geçerli düzenleme işlemini iptal eder.
Liste olarak veri kaynağı
BindingSourceBileşeni IBindingListView ve ITypedList arabirimlerini uygular. Bu uygulamayla, BindingSource bileşeni herhangi bir dış depolama olmadan bir veri kaynağı olarak kullanabilirsiniz.
BindingSourceBileşen bir veri kaynağına eklendiğinde, veri kaynağını bir liste olarak kullanıma sunar.
DataSourceÖzelliği, çeşitli veri kaynaklarına ayarlanabilir. Bunlar türleri, nesneleri ve tür listelerini içerir. Elde edilen veri kaynağı bir liste olarak gösterilir. Aşağıdaki tabloda bazı ortak veri kaynakları ve elde edilen liste değerlendirmesi gösterilmektedir.
| DataSource özelliği | Liste sonuçları |
|---|---|
Null başvurusu ( Nothing Visual Basic) |
IBindingListNesnelerden oluşan boş bir nesne. Öğe eklendiğinde liste eklenen öğenin türüne ayarlanır. |
küme ile null başvuru ( Nothing Visual Basic) DataMember |
Desteklenmiyor; yükseltir ArgumentException . |
| "T" türünde liste olmayan tür veya nesne | IBindingList"T" türünde boş. |
| Dizi örneği | IBindingListDizi öğelerini içeren bir. |
| IEnumerable Instance | IBindingListÖğeleri içeren bir IEnumerable |
| "T" türünü içeren liste örneği | IBindingList"T" türünü içeren örnek. |
Ayrıca, DataSource ve gibi diğer liste türlerine ayarlanabilir IListSource ITypedList ve BindingSource bunları uygun şekilde işleymeyecektir. Bu durumda, listede yer alan türün parametresiz bir oluşturucusu olmalıdır.
IBindingList olarak BindingSource
BindingSourceBileşeni, temel alınan verilere erişmek ve bu verileri işlemek için Üyeler sağlar IBindingList . Aşağıdaki tabloda bu üyelerin bazıları açıklanmaktadır.
| Üye | Açıklama |
|---|---|
| List özelliði | Veya özelliklerinin değerlendirmesinden elde edilen listeyi alır DataSource DataMember . |
| AddNew yöntemi | Temel alınan listeye yeni bir öğe ekler. IBindingListArabirimi uygulayan ve öğe eklemeye izin veren veri kaynakları için geçerlidir (yani, AllowNew özelliği olarak ayarlanır true ). |
Özel öğe oluşturma
AddingNewKendi öğe oluşturma mantığınızı sağlamak için olayı işleyebilirsiniz. AddingNewOlayı, öğesine yeni bir nesne eklenmeden önce oluşur BindingSource . Bu olay, AddNew yöntemi çağrıldıktan sonra, ancak yeni öğe temel alınan listeye eklenmeden önce tetiklenir. Bu olayı işleyerek, sınıftan türemeksizin özel öğe oluşturma davranışı sağlayabilirsiniz BindingSource . daha fazla bilgi için bkz. nasıl yapılır: Windows Forms BindingSource ile öğe eklemeyi özelleştirme.
İşlem öğesi oluşturma
BindingSourceBileşen, ICancelAddNew işlem öğesi oluşturmaya izin veren arabirimini uygular. Yeni bir öğe çağrısı kullanılarak geçici olarak oluşturulduktan sonra AddNew , ekleme işlemi aşağıdaki yollarla uygulanabilir veya geri döndürülebilir:
EndNewYöntemi, bekleyen ekleme işlemi açıkça uygulanır.
Ekleme, kaldırma veya taşıma gibi başka bir koleksiyon işlemi gerçekleştirmek, bekleyen ekleme işlemini örtülü olarak işlemeye çalışır.
Yöntem CancelNew henüz yürütülmemiş ise Yöntem, bekleyen eklemeyi geri alacak.
IEnumerable desteği
BindingSourceBileşen, veri kaynaklarına denetim bağlamayı sağlar IEnumerable . Bu bileşenle, gibi bir veri kaynağına bağlanabilirsiniz System.Data.SqlClient.SqlDataReader .
Bileşene bir IEnumerable veri kaynağı atandığında, BindingSource BindingSource bir oluşturur IBindingList ve IEnumerable veri kaynağının içeriğini listeye ekler.
Design-Time desteği
Bir fabrika sınıfından oluşturulan nesneler veya bir Web hizmeti tarafından döndürülen nesneler gibi tasarım zamanında bazı nesne türleri oluşturulamaz. Denetimlerinizin bağlayabileceği bellekte hiç nesne olmasa bile, bazı durumlarda denetimlerinizi bu türlere tasarım zamanında bağlamanız gerekebilir. Örneğin, bir denetimin sütun üstbilgilerini DataGridView özel türün ortak özelliklerinin adlarıyla etiketlemenize gerek vardır.
Bu senaryoyu desteklemek için BindingSource bileşen bir ' a bağlamayı destekler Type . Özelliğine bir atadığınızda Type DataSource , BindingSource bileşen bir öğe boş oluşturur BindingList<T> Type . Daha sonra bileşene daha sonra bağlanan denetimler, BindingSource tasarım zamanında veya çalışma zamanında, yazdığınız özelliklerin veya şemanın varlığı ile ilgili olarak uyarılacaktır. daha fazla bilgi için bkz. nasıl yapılır: Windows Forms denetimini bir türe bağlama.
Statik ListBindingHelper yöntemleri
System.Windows.Forms.BindingContext, System.Windows.Forms.CurrencyManager Ve BindingSource türleri bir DataSource / çiftin listesini oluşturmak için tüm ortak mantığı paylaşır DataMember . Ayrıca, bu ortak mantık aşağıdaki yöntemlerde denetim yazarları ve diğer üçüncü taraflar tarafından kullanıma açıktır static :
IBindingListView arabirimiyle sıralama ve filtreleme
BindingSourceBileşen arabirimini IBindingListView genişleten arabirimini uygular IBindingList . IBindingListTek sütunlu sıralama ve IBindingListView Gelişmiş sıralama ve filtreleme olanakları sunar. İle veri IBindingListView kaynağı bu arabirimlerden birini de uygularsa, veri kaynağındaki öğeleri sıralayabilir ve filtreleyebilirsiniz. BindingSourceBileşen bu üyelerin başvuru uygulamasını sağlamıyor. 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 | Açıklama |
|---|---|
| Filter özelliði | Veri kaynağı bir ise IBindingListView , hangi satırların görüntülendiğini filtrelemek için kullanılan ifadeyi alır veya ayarlar. |
| Sort özelliði | Veri kaynağı bir ise IBindingList , sıralama ve sıralama bilgileri için kullanılan bir sütun adı alır veya ayarlar. -veya- Veri kaynağı bir ise IBindingListView ve gelişmiş sıralamayı destekliyorsa, sıralama ve sıralama düzeni için kullanılan birden çok sütun adı alır |
BindingNavigator ile tümleştirme
BindingSourcebileşeni, herhangi bir Windows Forms denetimini bir veri kaynağına bağlamak için kullanabilirsiniz, ancak BindingNavigator denetim özellikle bileşenle çalışmak üzere tasarlanmıştır BindingSource . BindingNavigatorDenetim, bileşenin geçerli öğesini denetlemek için bir kullanıcı arabirimi sağlar BindingSource . Varsayılan olarak denetim, BindingNavigator bileşendeki gezinti yöntemlerine karşılık gelen düğmeleri sağlar BindingSource . daha fazla bilgi için bkz. nasıl yapılır: Windows Forms BindingNavigator denetimi ile verilerde gezinme.
Ayrıca bkz.
- BindingSource
- BindingNavigator
- BindingSource Bileşenine Genel Bakış
- BindingNavigator Denetimi
- Windows Forms Veri Bağlama
- Windows Forms'ta Kullanılacak Denetimler
- Nasıl yapılır: Windows Forms Denetimini Bir Türe Bağlama
- Nasıl yapılır: BindingSource ile Windows Forms Denetiminde Veri Kaynağı Güncelleştirmelerini Yansıtma