Saturday 15 September 2012

What is the difference between ValidatesOnNotifyDataErrors and ValidatesOnDataErrors and NotifyOnValidationError in WPF validation? -


WPF सत्यापन में, निम्न के बीच अंतर क्या है:

< P> ValidatesOnNotifyDataErrors = True

ValidatesOnDataErrors = True

NotifyOnValidationError = True

आप XAML में इन गुणों का सही उपयोग कब करना चाहिए?

वैधताओनोटिटडेटा एरार्स और ValidatesOnDataErrors का उपयोग तब किया जाता है जब आप एक XAML बाध्य करना चाहते हैं ValidatesOnNotifyDataErrors के लिए ViewModel / Model में कार्यान्वित एक इंटरफ़ेस के आधार पर अपने इनपुट को मान्य करने के लिए नियंत्रण, यह इंटरफ़ेस है और ValidatesOnDataErrors के लिए है। उदाहरण के लिए, मान लें कि आपके पास है इस तरह से एक दृश्य मॉडल:

  वर्ग व्यक्ति व्यू मॉडल: IDataErrorInfo {सार्वजनिक स्ट्रिंग प्रथम नाम {get; सेट;} स्ट्रिंग IDataErrorInfo.Error {वापसी स्ट्रिंग। खाली; } स्ट्रिंग IDataErrorInfo.this [string columnName] {if (columnName == "प्रथमनाम" & amp;) {if (this.FirstName.Length & gt; 20) "FirstName 20 वर्णों से अधिक नहीं हो सकता।"; } वापसी स्ट्रिंग। खाली; }}   

और फिर आपके दृश्य में आपके पास एक टेक्स्ट बॉक्स है जो इस प्रकार FirstName संपत्ति के लिए बाध्य है: & lt; टेक्स्ट बॉक्स पाठ = {बाध्यकारी पथ = पहलेनाम, ValidatesOnDataErrors = True} / & Gt; अब अगर उपयोगकर्ता ने पाठ बॉक्स में 20 अक्षर या उससे अधिक प्रविष्ट किए हैं तो एक त्रुटि का पता लगाया जाएगा।

<आमतौर पर

> ValidatesOnDataErrors सत्यापन के लिए मेरे XAML नियंत्रणों में और मुझे दूसरे दो की आवश्यकता नहीं है, इसलिए यह आपकी स्थिति पर निर्भर करता है।

संपादित करें: मैं अपने जवाब को अद्यतन कर रहा हूं क्योंकि मैंने कुछ नई चीजें सीखी हैं, इसलिए मुझे इसे और अधिक प्रासंगिक बनाने की आवश्यकता है।

ValidatesOnDataErrors का उपयोग मोटी ग्राहकों में या दूसरे शब्दों में किया जाता है सत्यापन क्लाइंट साइड पर किया जाता है जैसे कि डेस्कटॉप WPF या WinForm एप्लिकेशन और मॉडल ऑब्जेक्ट को IDataErrorInfo लागू करते हैं।

दूसरी ओर, ValidatesOnNotifyDataErrors क्लाइंट-सर्वर अनुप्रयोगों (WCF के साथ सीपीएलएफ, डब्ल्यूपीएफ, आदि।) जैसे पतली क्लाइंट के लिए एक बेहतर फिट हो (बहु-स्तरीय एप्लिकेशन) जहां सत्यापन पर होता है सर्वर।

इस तरह से जब उपयोगकर्ता एक पाठ बॉक्स में उदाहरण के लिए कुछ प्रकार, मान मान्यता के लिए सर्वर को अतुल्यकालिक रूप से भेजा जाता है, और जब सत्यापन परिणाम वापस आते हैं तो (घटना सटीक हो) , तो दृश्य ऊपर उठाता है और उपयुक्त विधि का उपयोग करके इसे दिखाता है, निश्चित रूप से इस मॉडल में INotifyDataErrorInfo

No comments:

Post a Comment