2009-12-11 11 views
7

मैं एक WPF अनुप्रयोग के लिए एमवीवीएम पैटर्न का उपयोग कर रहा हूँ। यानी क्या सबसे अच्छा तरीका है -डब्ल्यूपीएफ में कमांड बाध्यकारी का उपयोग करते समय अपवादों को संभालने का सबसे अच्छा अभ्यास क्या है?

<Button Command="{Binding TheClickCommand}" >Click</> 

क्या फेंका अपवाद हैंडलिंग जब आदेश मेरी viewmodel में निष्पादित किया जाता है के लिए सबसे अच्छा अभ्यास है: कई स्थानों में मैं निम्नलिखित XAML में के रूप में विचारों में इनपुट तत्वों को आदेश बाँध इस विचार को सूचित करें कि कुछ गलत है? क्या मैं IDTAErrorInfo पैटर्न का उपयोग कर सकता हूं या इस परिदृश्य के लिए कुछ अन्य अंतर्निहित पैटर्न है?

उत्तर

1

मुझे इस उत्तर से नफरत है, लेकिन यह वास्तव में एक संदर्भ पर निर्भर करता है।

आज मैं IoC उपयोग कर सकते हैं, ILoggerService या INotificationSerivce या दोनों हो और सामान करते हैं जब कुछ गलत हो गया है। कल मैं कच्चे संदेशबॉक्स से दिखा सकता हूं। दिखाएं() कहीं डिस्पैटर UnhandledException ईवेंट हैंडलर में कहीं भी। या हो सकता है मैं आला

<Button loc:Commanding.ExceptionAwareCommand="{loc:CommandExtension 
      Command={Binding TheClickCommand}, 
      FallBackCammand={Binding ErrorHandlerCommand}}" /> 

अपने ही संलग्न संपत्ति लिख सकते हैं और इसके साथ रहना होगा ...

शायद इस सवाल का जवाब इस तरह जा सकते हैं: "दो वर्गों के बीच संवाद और इसका इस्तेमाल करने का सबसे अच्छा तरीका चुनें" । गैर ठोस होने के लिए खेद है ... शायद कोई और अधिक विशिष्ट होगा।

एनबी: उत्तर में दिए गए इंटरफेस के नाम WPF मानक नहीं हैं। मैं उन्हें एक उदाहरण के रूप में उपयोग करता हूं।

चीयर्स

+0

इंटरफ़ेस नाम मानक नहीं हो सकते हैं, लेकिन वे एक सम्मेलन के रूप में उभर रहे प्रतीत होते हैं। –

+0

हालांकि मैं एक और ठोस जवाब की उम्मीद कर रहा था, मुझे लगता है कि आपका जवाब जितना करीब हो उतना करीब है। धन्यवाद :-) –

0

सबसे आसान जवाब बस एक संदेश बॉक्स पॉप करना है। अधिसूचना सेवा का उपयोग करने के लिए एक और परिष्कृत दृष्टिकोण हो सकता है, जो उपयोगकर्ता को आपके ऐप को एप्रोपियेट करने के तरीके को संदेश दिखाता है, लेकिन यूनिट परीक्षण के लिए नकली सेवा के साथ मजाक किया जा सकता है।

+0

लेकिन मैं अपने viewmodel पर एक घटना डाल दिया और राय यह है कि घटना को सुनने या क्या सबसे अच्छा तरीका है देना चाहिए? –

+0

जब तक दृश्य को कुछ विशेष त्रुटि प्रबंधन प्रदान करने की आवश्यकता न हो। अधिकतर आप उपयोगकर्ता को सूचित करना चाहते हैं कि त्रुटि क्या थी। दृश्य मॉडल का मुख्य उद्देश्य दृश्य से प्रस्तुति तर्क को हटाना है। –

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

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