BindingSource هي أداة جديدة ظهرت في .net2
وهي تقدم لنا غرضين وهما ..
الأول : تقوم بريط الأدوات Controls الموجودة على النموذج form مع مصدر البيانات data Source بطريقة غير مباشرة يعني في عندنا dataSet وDataAdapter اوك .......
وهي على جميع طرق التفاعل مع البيانات مثل الاول والتالي والسابق والاخير وعملية الترتيب والفلترة Filter وايضاً تحديث البيانات والألغاء
الثاني : والثاني ممكن أن نقول أنها تتعامل بشكل كامل مع مصدر البيانات عن طريق الطريقة Method وهي Add والخاصية Property وهي DataMember
Add تستخدم لأضافة Item إلى ما List او بالأحرى إلى BindingSource
DataSource : وهي هنا تأخذ Object واحد فقط يعني ممكن أن نقول Table من DataSource او سواء كانت MS Access أو MS SqlServer ولا ننسى طريقة الأتصال تتم بصورة غير مباشرة ..
اما في حالة أردنا ربط BindingSource بأكثر من جدول Table فهناك ما يعرف ب Object View ويجد كلاس قد قرأتها أسمها JoinView وهي من ميكروسوفت مخصصة للربط باكثر من جدول Table ..
وأحب أن أنوه هنا أن الشكر لله وحده ومن ثم للأخ الغملاسي الذي أعطاني أسمها وعن طريق البحث وصلت لها اسأل الله الكريم أن يسدد خطاها ...
وللشرح عنها أليكم هادا الرابط اضغط هنا
يوجد مثال في المرفقات لبيان الطريقة
نأتي الأن إلى أهم الخصائص و الطرق والأحداث الخاصة بهذه الأداة ...
أولا الخصائص Properties
AllowEdit وهي تعطينا قيمة Boolean (أي قيمة تحتمل الصواب والخطأ) توضح لنا أذا هذه العناصر Items قابلة للتعديل أم لا
AllowNew وهي تعطينا قيمة Boolean (أي قيمة تحتمل الصواب والخطأ)
فأن كانت True فهنا يمكن أن نضيف عنصر جديد إلى BindingSource عن طريق الطريقة AddNew والتي سوف يأتي شرحها عم قريب ..
وأذاكانت False فلا أضافة
AllowRemove : وهي تعطينا قيمة Boolean توضح لنا أذا ممكن أن نحذف من List أم لا .
Count : وهي تعطينا قيمة من نوعInteger لكي تعطينا عدد العناصر التي بList .
Current : وهي تعطينا العنصر الحالي ( المؤشر عليه) داخل List ..
Filter : وهي عبارة عن عمل فلترة إلى الصفوف داخل List إليكم هذا المثال ..
BindingSource1.Filter = "ContactTitle='TextBox1.text'"
او كالتالي
BindingSource1.Filter = String.Format("CODE = '(0)'", codeTextBox.Text)او كالتالي
BindingSource.Filter = "UserName Like 'c%'"
Position : لتحديد موضع المؤشر حالياً يعني على أي عنصر داخل list
Sort : وهي عملية الترتيب أي ترتيب الأعمدة بناءاً على عمود معين داخل List
مثلاً
BindingSource1.Sort = "Country DESC, Address ASC"
SortDirection : وهي خاصة بطريقة الترتيب يعني الاتجاه يعني تصاعديا
Ascending أو تنازلياً Descending ...
الطرق Methods
AddNew : أضافة نصر جديد الى List .
CancelEdit : إلغاء عملية التعديل التي حصلت على أخر عنصر في List .
Clear : مسح جميع العناصر من list .
EndEdit : وهو تحرك المؤشؤ إلى نهاية List .
Find : وهو أيجاد قيمة محددة في DataSource .
مثلا
index = BindingSource1.Find("CustomerID", "RICSU")
BindingSource1.Position = indexأو
If Len(FindTxt) > 0 Then Me.BindingSource1.Find(DTable.Columns(0).ColumnName, FindTxt) End If
Insert : وهو أضافة عنصر جديد إلى List ولكن عند موضع معين وطريقة الاضافة
كالتالي
BindingSource1.Insert(index, value)
MoveFirst : وهي تحرك المؤشر Cursor إلى او عنصر في List
MoveNext : وهو للتالي
MovePrevious : للسابق
MoveLast : التحرك للأخير
بالنسبة للحذف ..
ملاحظة :يجب أن تكون الخاصية allowRemove=true
Remove : وهو حذف عنصر من القائمة ..
يعني لازم نمرر العنصر المراد حذفه ..
RemoveAt : وهنا يتم حذف العنصر من القائمة ولكن علينا أن نمرر له index للعنصر الذي نريد حذف
RemoveCurrent : وهو بمعنى حذف العنصر المحدد .. الذي يقف عنده المؤشر
RemoveFilter : وهو حذف الفلتر Filter المرتبط مع BindingSource
Removesort وهو حذف sort الخاص بعملية الترتيب المرتبط ب BindingSource
ويوجد مثال قد أرفقته من قبل هنا


