2011-03-23 19 views
10

मुझे पता है कि जब डेटा प्रदर्शित होने वाला है, तो Convert() विधि को डेटा रूपांतरित करने के लिए कहा जाता है और परिवर्तित डेटा इसके बजाए प्रदर्शित होता है।कन्वर्टबैक विधि कब कॉल की जाती है?

मुझे आश्चर्य है कि ConvertBack() विधि कहलाती है? इसका उद्देश्य क्या है?

मेरे पास DataGrid है जिसका ItemSource कुछ संग्रह से जुड़ा हुआ है, और मैंने संग्रह में वस्तुओं की एक संपत्ति के लिए IValueConverter लागू किया है। जब मैं IsReadOnly="True" (डेटाग्रिड में) बना देता हूं, तो ConvertBack विधि को कॉल किया जाता है यदि मैं सेल पर डबल-क्लिक करता हूं (जिसके लिए IValueConverter लागू किया गया है) और फिर फ़ोकस बदलें। लेकिन जब मैं IsReadOnly="False" बना देता हूं, तो ConvertBack विधि को कभी भी नहीं कहा जाता है, इससे कोई फर्क नहीं पड़ता कि मैं DataGrid और इसकी कोशिकाओं के साथ क्या करता हूं।

DataGrid कोशिकाओं और ConvertBackIValueConverter की विधि के इस व्यवहार को समझाएं।

+1

यह कहा जाता है के साथ अपने सेल के लिए बाध्यकारी पोस्ट चाहिए जब बाध्यकारी मोड TwoWay (TextBox.Text के लिए और शायद CheckBox.IsChecked के लिए डिफ़ॉल्ट मोड) है। यदि आप वनवे को स्पष्ट रूप से सेट करते हैं, तो मुझे लगता है कि विधि नहीं कहा जाएगा। – vorrtex

+0

मुझे यह समस्या भी है। यदि मैं सीधे 'डेटाटेबल' से बांधता हूं तो स्रोत 'सेलएडिट एन्डिंग' पर अपडेट हो जाता है। यदि मैं एक अलग तरह की वस्तु से जुड़ा हूं और बाध्यकारी में एक कनवर्टर का उपयोग कर इसे 'डेटाटेबल' में परिवर्तित करने के लिए 'कनवर्टबैक' पर कभी भी कॉल नहीं किया जाता है। मतलब उपयोगकर्ता संपादन स्रोत के लिए प्रचारित नहीं होते हैं। मैं सोच रहा हूं कि मुझे अपने 'डेटाटेबल' को प्राप्त करने की आवश्यकता है और इसमें किसी प्रकार का अधिसूचना तर्क जोड़ें। यदि मुझे समाधान मिल जाए तो पोस्ट करेगा। –

उत्तर

8

"डेटा बाइंडिंग इंजन इस विधि को कॉल करता है जब यह बाध्यकारी लक्ष्य से बाध्यकारी स्रोत से मूल्य को प्रसारित करता है।"

msdn

देखते हैं कि आप अपने valueconverter

+1

तो यदि आप नहीं चाहते हैं कि यह स्रोत पर वापस प्रचार करे, तो आप बाध्यकारी मोड = वनवे बनाते हैं? – steviesama

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