RelayCommand
की एक बहुत ही आम कार्यान्वयन निम्नलिखित पंक्तियों को शामिल कर लगता है:क्या रिलेकॉमैंड का एमवीवीएम पैटर्न का उल्लंघन करने का सामान्य कार्यान्वयन है?
public event EventHandler CanExecuteChanged
{
add
{
CommandManager.RequerySuggested += value;
}
remove
{
CommandManager.RequerySuggested -= value;
}
}
यह मेरे लिए बहुत त्रुटिपूर्ण लगता है, क्योंकि CommandManager
एक WPF घटक है और आम तौर पर मेरी आज्ञाओं एक viewmodel वर्ग में स्थित हैं। चूंकि व्यूमोडेल को दृश्य को नहीं जानना चाहिए और विभिन्न ढांचे के साथ काम करना चाहिए और ऐसा, यह मेरे लिए बहुत अजीब लगता है। उदाहरण के लिए इस कार्यान्वयन भले ही आप एक अतिरिक्त परियोजना, कि WPF नाम स्थान (जैसे PCL) पता नहीं है में अपने viewmodel अलग संभव नहीं होगा।
इस कार्यान्वयन MVVM पैटर्न का उल्लंघन है?
या आप शायद किसी भी तरह आपके विचार में RelayCommand
डालूं?
अगर यह वास्तव में त्रुटिपूर्ण, वहाँ एक सबसे अच्छा अभ्यास कार्यान्वयन इस समस्या को हल करती है है?
अपने viewmodel अपने दृश्य के लिए है, बस इसे संदर्भित नहीं। तो ये ठीक है। – blindmeis
@blindmeis एक दृश्य घटक का उपयोग करके यह वास्तव में इसका संदर्भ दे रहा है।यदि आप इस रिलेकॉमैंड कार्यान्वयन को गैर-डब्ल्यूपीएफ एप्लिकेशन में उपयोग करने का प्रयास करते हैं तो यह बहुत स्पष्ट हो जाता है। –
मुझे नहीं लगता कि आप किसी अन्य गैर-WP अनुप्रयोग में wpf के लिए viemodel का उपयोग करेंगे :) मुख्य उद्देश्य यूआई के बिना परीक्षण कर रहा है और यह काम करता है। – blindmeis