2010-10-16 13 views
5

मैं एक आवेदन बना रहा हूं और मैं धारणा के तहत रहा हूं कि जब नियंत्रण दृश्य-मॉडल (यानी एक स्ट्रिंग फ़ील्ड में टेक्स्टबॉक्स) में किसी सदस्य के लिए बाध्य होता है तो स्ट्रिंग को उपयोगकर्ता परिवर्तन में अपडेट किया जाता है टेक्स्टबॉक्स में जानकारी और बाद में नहीं।सी # (डब्ल्यूपीएफ) में डाटाबेसिंग तब होती है जब यूआई थ्रेड में डेटाचांग तुरंत होता है?

लेकिन मुझे जो मिला है वह यह है कि स्ट्रिंग को अद्यतन किया जाता है जब टेक्स्टबॉक्स बदल जाता है और जब उपयोगकर्ता टेक्स्टबॉक्स से \ टैब को क्लिक करता है।

(मैं Caliburn.Micro ढांचे का उपयोग कर रहा है कि अगर मायने रखती है।)

कोई व्याख्या कर सकते हैं जो सही है और इसलिए है कि एक परिवर्तन तुरंत देखा जा सकता है कि यह कैसे बनाने के लिए?

उत्तर

6

यह एक WPF मुद्दा नहीं है ... यह पूरी तरह से नियंत्रण के साथ निहित है।

लेकिन क्या मैं पाया है कि स्ट्रिंग जब पाठ बॉक्स बदल गया है और उपयोगकर्ता \ टैब पाठ बॉक्स के बाहर क्लिक करता है अद्यतन किया जाता है है।

यह सेट ऑपरेशन की मात्रा को कम करने और अपूर्ण डेटा सेट करने से बचने के लिए विशिष्ट टेक्स्टबॉक्स है।

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c3ae2677-7cc9-4bb3-9cce-4e7c0eeff6f0 में एक समाधान है - मूल रूप से अद्यतन स्रोत ट्रिगर संपत्ति में सेट किया गया है। यदि आप ऐसा करते हैं, हालांकि, आपको मॉडल में बहुत अधिक अमान्य डेटा मिलता है, उदाहरण के लिए जब लोग इनवॉकी नंबर दर्ज करते हैं तो सभी आंशिक मॉडल मॉडल पर जायेंगे।

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx में एक अच्छा स्पष्टीकरण है - जैसा कि यह कहता है, सामान्य ट्रिगर संपत्ति बदलता है, जबकि टेक्स्ट प्रॉपर्टी लॉस्टफोकस पर डिफ़ॉल्ट होती है।

+0

उत्तर के लिए धन्यवाद मैं निश्चित रूप से लिंक में देखता हूँ। खराब डेटा के लिए, व्यू-मॉडल वास्तव में इनपुट सत्यापन कर रहा है और जब तक सबकुछ गुजरता है तब तक मॉडल में कुछ भी नहीं बचाएगा। – Scifiballer24

+0

निश्चित रूप से। यदि आप केवल "समाप्त इनपुट" से निपटते हैं और "रास्ते पर" अपडेट नहीं करते हैं तो यह बहुत कम प्रमाणीकरण है;) – TomTom

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