2017-01-31 8 views
6

का उपयोग कर के क्या लाभ देता है मुझे कुछ इस तरह का उपयोग कर रहे हैंBindingSource BindingSource

DataGridView dgvDocuments = new DataGridView(); 
DataTable dtDocuments; 

dtDocuments = MsSQL.GetDocuments(dtpOd.Value, dtpDo.Value); 
dgvDocuments.DataSource = dtDocuments; 
+0

प्राप्त कर सकते हैं मैं एक और महत्वपूर्ण अंतर पाया गया। आप मेरा संपादन देख सकते हैं। इसके अलावा आप उन उत्तरों में से एक को स्वीकार करने पर विचार कर सकते हैं जो आपके लिए उपयोगी था। –

उत्तर

1

BindingSource उन्हें

में से कुछ नीचे, कई लाभ है हो जाएगा

1) जब आप बाइंडिंगसोर्स के साथ किसी भी नियंत्रण में डेटा बाध्य करते हैं तो यह दोनों पक्षों को प्रभावी करेगा। डेटासोर्स प्रभावों को नियंत्रित करने के लिए किए गए किसी भी बदलाव और प्रभाव डेटासॉर को नियंत्रित करने के लिए कोई भी परिवर्तन। आप नियंत्रण से ले मूल्य की जरूरत नहीं है और फिर

2) डेटा स्रोत के लिए असाइन आप bindingsource

3 के साथ datasource को filter आवेदन कर सकते हैं) आप एक datasourcemany controls से आबद्ध के साथ काम कर सकते हैं। उदाहरण के लिए आपके पास टेबल Fruits है, और आप Aplles और Peaches को अलग दिखाने के लिए table से 2 DataGridView पर बाध्य करते हैं। bindingsourceFilter संपत्ति के साथ आप Apples और Peaches को अलग-अलग दिखा सकते हैं।

4) आप छंटाई, संपादन, bindingsource

आप बुनियादी सूची में bindingsource लाभ नहीं देख सकते हैं के साथ फ़िल्टर करना, खोज कर सकते हैं, लेकिन वहाँ बुनियादी की तुलना में अधिक सूची कैसे bindingsource उपयोगी है आप देखेंगे।

आप अधिक informtaion Here

3

लाभों में से एक यह है कि आप में मूल्यों में हेरफेर करता है, तो डेटाग्रिड देखें मैन्युअल रूप से परिवर्तन अंतर्निहित डेटा में दिखाई देंगे। (संपादित करें: जाहिरा तौर पर यह भी सामान्य डेटा स्रोत से आबद्ध काम करता है।)

एक और लाभ यह है कि आप संभावना अंतर्निहित डेटा के लिए एक प्रविष्टि जोड़ने के लिए अतिरिक्त खाली क्षेत्र पर क्लिक करके प्राप्त (कम से कम अगर यह एक List है) और मूल्यों को संपादित करें। यह आपके लिए लिखने के लिए कोई अतिरिक्त कोड बिना एक नया आइटम जोड़ देगा।

enter image description here

यह Detailed Data Binding Tutorial सामान्य

संपादित में बाध्यकारी डेटा की क्षमताओं पर अधिक प्रकाश डाला करने में मदद कर सकते हैं:

एक और अंतर यह है कि अंतर्निहित डेटा, को जैसे चाहें के हेरफेर एक सूची में एक आइटम DataGridView में प्रतिबिंबित नहीं होगा, भले ही DataSource संपत्ति को फिर से असाइन किया जाए जो उदाहरण के लिए ComboBox में काम करेगा। लेकिन BindingSource के नए उदाहरण की पुन: असाइन करने से यह चाल चल जाएगी।

आप व्यक्तियों की एक सूची है तो अगर:

List<pers> list = new List<pers>(); 
BindingSource bs = new BindingSource(); 
bs.DataSource = perlist; 
dataGridView1.DataSource = bs; 

और बाद में कोड में सूची में एक नया आइटम जोड़ने के लिए, बस BindingSource का एक नया उदाहरण बनाने के लिए, DataGridView.DataSource

को पुन: असाइन चाहते
list.Add(new pers()); 

bs = new BindingSource(); 
bs.DataSource = perlist; 

dataGridView1.DataSource = bs; 

और नया आइटम प्रदर्शन

+0

मुझे यकीन नहीं है कि मुझे कुछ याद आ रहा है, लेकिन मेरे लिए परिवर्तन 'बाध्यकारी स्रोत' – Slai

+0

@Slai के बिना भी दोनों तरीकों परिलक्षित होते हैं। मुझे आश्चर्य है कि आखिरी बार मैंने क्या गलती की थी जब मैंने कोशिश की और यह काम नहीं कर सका। इसलिए मैंने इसे अपने मस्तिष्क में लाभ के रूप में सहेजा, क्योंकि मैंने सामान्य बाध्यकारी के बजाय 'बाध्यकारी स्रोत' का उपयोग किया और मेरी समस्या हल की। –

+1

बहुत सारे ट्यूटोरियल और कोड नमूने इसका उपयोग करते हैं, इसलिए अधिकांश ऐसा लगता है कि इसकी आवश्यकता है। विजुअल स्टूडियो बाइंडिंगसोर्स बनाता है जब डाटा बाइंडिंग डिज़ाइनर को कम करता है, इसलिए इसका कुछ उपयोग हो सकता है कि मुझे अनजान है (शायद डेटा स्रोत से फ़िल्टरिंग और सॉर्टिंग तर्क को अलग करना)। 'बाइंडिंगसोर्स' की आवश्यकता होती है जब डेटा 'डिक्शनरी' जैसे कुछ संग्रहों को बाध्य करता है, लेकिन मुझे अन्यथा इसका अधिक उपयोग नहीं दिखता है। – Slai

संबंधित मुद्दे