2010-12-13 10 views
7
<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" /> 

"नाम" एक वस्तु जो रनटाइम पर TextBlock के साथ ही है की संपत्ति है। मैंने INotifyProperty को लागू किया है, इसलिए कोड ठीक काम कर रहा है। मेरा सवाल है: यदि मैं PropertyChanged को डिफ़ॉल्ट में बदलता हूं तो क्या यह अभी भी काम करेगा? उनके बीच क्या अंतर है?अपडेटसोर्स ट्रिगर का डिफ़ॉल्ट बनाम संपत्ति बदल गया?

उत्तर

10

MSDN के अनुसार, UpdateSourceTrigger के डिफ़ॉल्ट मान TextBox.Text संपत्ति के लिए सबसे अधिक संपत्तियों के लिए PropertyChanged और LostFocus है।

आपके मामले में, आप शायद एक संपत्ति है जिसके लिए डिफ़ॉल्ट पहले से ही PropertyChanged के लिए निर्धारित है के लिए बाध्य कर रहे हैं, तो आप किसी भी अंतर नहीं देख सकेंगे।

1

PropertyChangedBinding बता रहा है कि जब भी आप उस संपत्ति के लिए PropertyChanged अधिसूचना प्राप्त करते हैं, तो गंतव्य पर इसका मूल्य अपडेट करें।

TextBox जैसे कुछ नियंत्रणों के लिए, Default का उपयोग करके, यह केवल बाध्यकारी गंतव्य अपडेट करता है जब उदाहरण के लिए, यह फोकस खो देता है। जब आप UpdateTrigger='PropertyChanged' सेट करते हैं, तो आप टाइप करते समय बाध्यकारी गंतव्य अपडेट करेंगे।

0

टेक्स्टबॉक्स नियंत्रण के लिए जब हम UpdateSourceTrigger = डिफ़ॉल्ट का उपयोग करते हैं तो स्रोत ऑब्जेक्ट फ़ोकस खो देता है, लक्ष्य में मान अपडेट हो जाएगा। जब हम UpdateSourcetrigger = PropertyChanged का उपयोग करते हैं, तो जब स्रोत ऑब्जेक्ट टेक्स्ट बदलता है (तब भी जब हम एक वर्ण टाइप करते हैं) तो परिवर्तन से तुरंत दिखाई देगा। अधिकतर नियंत्रण के लिए डिफ़ॉल्ट रूप से टेक्स्टबॉक्स नियंत्रण के लिए है, संपत्ति केवल

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