मैं एक DataGridView
में एक Windows में लोगों की एक सूची प्रदर्शित करना चाहते हैं एप्लिकेशन फॉर्म्स। मैं चाहता हूं कि मेरी सेवा परत व्यक्ति वस्तुओं की सूची लौटाए (उदाहरण के लिए, IList<Person>
)। मैं सूची में बदलाव DataGridView
और इसके विपरीत में प्रतिबिंबित करना चाहता हूं। मैं समझता हूँ कि BindingSource
का उपयोग कर DataGridView
के साथ काम करने की सुविधा है। मेरा प्रश्न दो तरह से डेटा बाइंडिंग काम करने के लिए है, मैं क्या ज़रूरत है:क्या मुझे WinForms डेटा बाइंडिंग के लिए बाध्यकारी स्रोत और बाध्यकारी सूची चाहिए?
//pseudo code
BindingSource.DataSource = IBindingList<Person>
या मैं कर सकते हैं:
BindingSource.DataSource = IList<Person>
क्या अंतर है? यदि सूची में मेरा परिवर्तन बदलता है तो DataGridView
किसी भी तरह से अपडेट किया जाएगा? और मैं BindingList
उपयोग करने के लिए है, यह एक छोटे से wonky मेरी सेवा परत से BindingList
वापस जाने के लिए (क्योंकि निर्भरता बनाने के) लगता है, वहाँ है कि चारों ओर एक तरीका है?
माइक्रोसॉफ्ट (टिप्पणी अनुभाग में) BindingList
का कहना है http://msdn.microsoft.com/en-us/library/ms132679.aspx:
"हालांकि, ठेठ समाधान प्रोग्रामर एक वर्ग है कि इस तरह के
BindingSource
के रूप में डेटा बाइंडिंग कार्यक्षमता, प्रदान करता है, के बजाय का उपयोग करेगा सीधेBindingList<T>
का उपयोग कर। "
मेरे भ्रम का एक हिस्सा यह था कि कुछ लोगों ने सुझाव दिया था कि जब तक आप बाइंडिंग स्रोत का उपयोग नहीं कर रहे थे तब तक आपको दो-तरफा डाटाबेसिंग प्राप्त करने के लिए बाध्यकारी सूची का उपयोग करने की आवश्यकता नहीं थी। लेकिन मुझे लगता है कि आप जो कह रहे हैं वह केवल तभी सच है जब आप केवल बाइंडिंग स्रोत के माध्यम से सूची को संशोधित करते हैं। – User