2010-02-19 10 views
6

हम उपयोगकर्ता चेतावनी को त्रुटियों के समान तरीके से कैसे दिखा सकते हैं। केवल अंतर यह है कि नियंत्रण उदा। टेक्स्टबॉक्स में एक अलग त्रुटि टेम्पलेट होना चाहिए और सत्यापन के समान होना चाहिए। हैररर को प्रमाणीकरण की आवश्यकता है। हासवर्निंग।डब्ल्यूपीएफ अलग त्रुटि और चेतावनी शैलियाँ

दूसरे शब्दों में सभी मान्यताओं के मुद्दे "त्रुटियां" नहीं हैं (कम से कम हमारे आवेदन में)। हम दृढ़ता से संकेत देना चाहते हैं कि कुछ चेतावनी या त्रुटि है या नहीं।

उत्तर

3

मुझे कभी-कभी उस मध्य मैदान की आवश्यकता होती है। Command एस की तरह true या false के बजाय CanExecute से 3 मानों की आवश्यकता है।

सत्यापन के लिए संचालित चेतावनियों के लिए, मुझे नहीं पता कि सभी टुकड़ों को एक साथ रखने की आवश्यकता होगी, लेकिन मुझे लगता है कि मुझे पता है कि कोई कैसे शुरू होगा।

आपको संलग्न गुणों और संलग्न व्यवहारों पर भरोसा करना होगा (संलग्न गुण जो वस्तु पर घटनाओं की सदस्यता लेते हैं और आग लगने पर उन घटनाओं से संबंधित संचालन करते हैं)। आपके पास ValidationRule ऑब्जेक्ट्स के संग्रह को नियंत्रित करने के लिए उपयोग किया जा सकता है यह निर्धारित करने के लिए कि कोई चेतावनी जारी की गई है या नहीं, Validation गुणों की तरह। आपके पास HasWarning नामक एक हो सकता है जो सत्यापन/सेट टेम्पलेट ट्रिगर्स में निर्दिष्ट सत्यापन द्वारा सेट या अनसेट हो जाता है।

आप प्रत्येक नियंत्रण के टेम्पलेट की चेतावनी प्रदर्शन हिस्सा बना सकते हैं, या आप फिर से नकल Validation सकता है और एक WarningTemplate जुड़ी संपत्ति है कि एक AdornerLayer में चेतावनी जानकारी देने के लिए उपयोग किया गया है।


कस्टम के बाद से ValidationRule वस्तुओं एक ValidationResult वस्तु जिसमें ErrorContent बस एक वस्तु है लौटने के लिए, और इस वस्तु भी ErrorContent रूप ValidationError वस्तुओं में सामने आ रहा है, तो आप भी सब के बाद नियमित रूप से मान्यता उपयोग करने में सक्षम हो सकता है। आप संभावित रूप से कक्षा को ErrorContent ऑब्जेक्ट के रूप में उपयोग कर सकते हैं जिसमें ErrorType चेतावनी या त्रुटि की संपत्ति है और इसे ErrorTemplate में बाध्य करें।

मुझे यकीन नहीं है कि ValidationError एस मौजूद कुछ ऑपरेशन (जैसे कि बटन प्रेस) को रोक देगा, जो आप अनुमति देना चाहते हैं, लेकिन व्यूमोडेल पर कुछ प्रकार की प्रॉक्सी बनाई जा सकती है जो ErrorType का न्याय करती है।

+0

+1 अवलोकन के लिए कि 'ErrorContent' एक ऑब्जेक्ट है, स्ट्रिंग नहीं। इसे पूरा करने के लिए यह एक बहुत ही आसान तरीका है। आप केवल त्रुटि, चेतावनी, और सूचना उपclass, और प्रत्येक प्रकार के लिए 'DataTemplate' के साथ एक संदेश वर्ग बनाते हैं। –

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