मुझे कभी-कभी उस मध्य मैदान की आवश्यकता होती है। Command
एस की तरह true
या false
के बजाय CanExecute
से 3 मानों की आवश्यकता है।
सत्यापन के लिए संचालित चेतावनियों के लिए, मुझे नहीं पता कि सभी टुकड़ों को एक साथ रखने की आवश्यकता होगी, लेकिन मुझे लगता है कि मुझे पता है कि कोई कैसे शुरू होगा।
आपको संलग्न गुणों और संलग्न व्यवहारों पर भरोसा करना होगा (संलग्न गुण जो वस्तु पर घटनाओं की सदस्यता लेते हैं और आग लगने पर उन घटनाओं से संबंधित संचालन करते हैं)। आपके पास ValidationRule
ऑब्जेक्ट्स के संग्रह को नियंत्रित करने के लिए उपयोग किया जा सकता है यह निर्धारित करने के लिए कि कोई चेतावनी जारी की गई है या नहीं, Validation
गुणों की तरह। आपके पास HasWarning
नामक एक हो सकता है जो सत्यापन/सेट टेम्पलेट ट्रिगर्स में निर्दिष्ट सत्यापन द्वारा सेट या अनसेट हो जाता है।
आप प्रत्येक नियंत्रण के टेम्पलेट की चेतावनी प्रदर्शन हिस्सा बना सकते हैं, या आप फिर से नकल Validation
सकता है और एक WarningTemplate
जुड़ी संपत्ति है कि एक AdornerLayer
में चेतावनी जानकारी देने के लिए उपयोग किया गया है।
कस्टम के बाद से ValidationRule
वस्तुओं एक ValidationResult
वस्तु जिसमें ErrorContent
बस एक वस्तु है लौटने के लिए, और इस वस्तु भी ErrorContent
रूप ValidationError
वस्तुओं में सामने आ रहा है, तो आप भी सब के बाद नियमित रूप से मान्यता उपयोग करने में सक्षम हो सकता है। आप संभावित रूप से कक्षा को ErrorContent
ऑब्जेक्ट के रूप में उपयोग कर सकते हैं जिसमें ErrorType
चेतावनी या त्रुटि की संपत्ति है और इसे ErrorTemplate
में बाध्य करें।
मुझे यकीन नहीं है कि ValidationError
एस मौजूद कुछ ऑपरेशन (जैसे कि बटन प्रेस) को रोक देगा, जो आप अनुमति देना चाहते हैं, लेकिन व्यूमोडेल पर कुछ प्रकार की प्रॉक्सी बनाई जा सकती है जो ErrorType
का न्याय करती है।
स्रोत
2010-02-19 16:28:49
+1 अवलोकन के लिए कि 'ErrorContent' एक ऑब्जेक्ट है, स्ट्रिंग नहीं। इसे पूरा करने के लिए यह एक बहुत ही आसान तरीका है। आप केवल त्रुटि, चेतावनी, और सूचना उपclass, और प्रत्येक प्रकार के लिए 'DataTemplate' के साथ एक संदेश वर्ग बनाते हैं। –