c# - CallMethodAction doesn't execute code-behind methods in Windows Phone 8.1 -
मैंने एक सरल XAML पृष्ठ बनाया है:
& lt; पृष्ठ। डेटाकॉन्टेक्स & gt; & Lt; स्थानीय: मुख्य पृष्ठ दृश्यमॉडल / & gt; & LT; /Page.DataContext> & LT; अन्तरक्रियाशीलता: Interaction.Behaviors & gt; & lt; कोर: डेटाट्रिगर बीवियर बाध्यकारी = "{बाध्यकारी मायएनम्बर}" मान = "3" & gt; & lt; कोर: कॉलमैलाएक्शन विधिनैम = "टेस्टमिलेशन" लक्ष्य ऑब्जेक्ट = "{बाध्यकारी तत्व नाम = पृष्ठ}" / & gt; & lt; कोर: कॉलमैलाएक्शन विधिनाम = "देखेंमोडेलमैथ" लक्ष्यऑब्जेक्ट = "{बाइंडिंग मोड = वनवेज़}" / & gt; & Lt; / कोर: DataTriggerBehavior & gt; & Lt; / अन्तरक्रियाशीलता: Interaction.Behaviors & gt; & LT; ग्रिड & gt; & Lt; पाठ बॉक्स मार्जिन = "0" क्षैतिज एलाइन्मेंट = "केंद्र" वर्टिकलएलिन्मेंट = "केंद्र" टेक्स्ट = "{माइन्डिंग बाध्यकारी, मोड = दोवे}" टेक्स्टवॉपिंग = "लपेटें" / & gt; & Lt; / ग्रिड & gt; और इस पेज के लिए एक व्यू मॉडेल:
सार्वजनिक वर्ग मुख्य पृष्ठ दृश्य मॉडेल: INotifyPropertyChanged {निजी Int _myNumber; सार्वजनिक int मायएनम्बर {प्राप्त {वापसी _myNumber; } सेट {_myNumber = मान; RaisePropertyChanged ( "MyNumber"); डीबग। विरलाइन ("प्रॉपर्टी मायएनम्बर बदल गया।"); }} सार्वजनिक शून्य ViewModelMethod () {Debug.WriteLine ("ViewModelMethod बुलाया।"); } #region INotifyPropertyChanged सार्वजनिक ईवेंट PropertyChangedEventHandler PropertyChanged; संरक्षित शून्य RaisePropertyChanged (स्ट्रिंग propertyName) {यदि (PropertyChanged! = Null) {PropertyChanged (यह, नई PropertyChangedEventArgs (propertyName)); }} # पृष्ठ के पीछे पृष्ठ कोड में, मैंने निम्नलिखित विधि जोड़ दी है: सार्वजनिक शून्य TestMethod () {Debug.WriteLine (" विधि TestMethod बुलाया। "); } जब मैं टेक्स्टबॉक्स में नंबर 3 दर्ज करता हूँ, केवल दूसरा कॉलमैलाएक्शन निष्पादित हो जाता है।
पीछे के कोड में TextMethod निष्पादित नहीं करता है। क्यूं कर? विंडोज फोन 8 में मुझे कभी भी यह समस्या नहीं थी।
एक समाधान मिला! विंडोज़ फ़ोन 8.0 में, आपको लक्ष्य ऑब्जेक्ट प्रॉपर्टी को पीछे के कोड में तरीके कॉल करने के लिए सेट करना होगा। Windows Phone 8.1 में, आप TargetObject बिल्कुल भी सेट नहीं करते हैं। कोड जो काम करता है:
& lt; कोर: कॉलमैलाएक्शन विधिनाम = "TestMethod" / & gt; हालांकि, मुझे अभी भी लगता है कि कम से कम एक त्रुटि फेंकनी चाहिए, अगर कोई विधि मौजूद नहीं है ...
Comments
Post a Comment