में उपयोगकर्ता नियंत्रण से घटनाओं को संभालना मैं एमवीवीएम पैटर्न (दोनों मेरे लिए नई तकनीकें) का उपयोग कर एक डब्ल्यूपीएफ एप्लीकेशन बना रहा हूं। मैं पुन: प्रयोज्य कार्यक्षमता के सरल बिट्स के लिए उपयोगकर्ता नियंत्रण का उपयोग करता हूं जिसमें व्यावसायिक तर्क, और एमवीवीएम पैटर्न अनुप्रयोग तर्क बनाने के लिए नहीं है। मान लीजिए कि एक दृश्य में मेरा उपयोगकर्ता नियंत्रण होता है जो घटनाओं को सक्रिय करता है, और मैं उस ईवेंट में इवेंट हैंडलर जोड़ना चाहता हूं। वह ईवेंट हैंडलर दृश्य के दृश्य मॉडल में होना चाहिए, क्योंकि इसमें व्यावसायिक तर्क शामिल है। सवाल यह है - देखें और दृश्य मॉडल केवल बाध्यकारी से जुड़े हुए हैं; मैं बाध्यकारी का उपयोग कर एक ईवेंट हैंडलर कैसे कनेक्ट करूं? क्या यह भी संभव है (मुझे संदेह नहीं है)? यदि नहीं - मुझे दृश्य मॉडल में नियंत्रण से घटनाओं को कैसे संभालना चाहिए? शायद मुझे आदेशों का उपयोग करना चाहिए या INotifyPropertyChanged?डब्ल्यूपीएफ - दृश्य मॉडल
उत्तर
आम तौर पर, यह कोड में कोड से बचने के लिए एक अच्छा एमवीवीएम-अभ्यास है, जैसा कि यदि आप अपने उपयोगकर्ता नियंत्रण में ईवेंट का उपयोग करते हैं तो यह मामला होगा। तो जब संभव हो, INotifyPropertyChanged
और ICommand
का उपयोग करें।
इसके साथ ही, आपके प्रोजेक्ट के आधार पर और आप कितने व्यावहारिक हैं, कुछ बार यह नियंत्रण के कोड का उपयोग करने के लिए और अधिक समझ में आता है। यहाँ खोजने के लिए इस और कार्यान्वयन के बारे में
private void textBox1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
MyViewModel vm = this.DataContext as MyViewModel;
vm.MethodToExecute(...);
}
तुम भी Attached Command Behaviour विचार कर सकते हैं, अधिक जानकारी:
मैं कुछ अवसरों पर है कुछ इस तरह इस्तेमाल किया
Firing a double click event from a WPF ListView item using MVVM
इसके अलावा एक ले प्रश्न How Can I Add a New Command to a Control's Event
XAML के साथ एमवीवीएम में आईसीओएमएंड का उपयोग करना।
http://johnpapa.net/5-simple-steps-to-commanding-in-silverlight
(MVVM VVMM रूप acronym'd चाहिए किया गया: देखें, देखें मॉडल, मॉडल, भी बेहतर लग रहा है :))
- 1. दृश्य मॉडल
- 2. बैकबोन मॉडल/दृश्य
- 3. आईआईएस दृश्य मॉडल एनोटेशन
- 4. वर्तमान मॉडल दृश्य नियंत्रक
- 5. डब्ल्यूपीएफ - एमवीवीएम - मॉडल पदानुक्रम देखें
- 6. डब्ल्यूपीएफ आवेदन में मॉडल संदेशबॉक्स
- 7. डब्ल्यूपीएफ: जब सूची सूची दृश्य
- 8. एमवीवीएम: पतला दृश्य मॉडल और रिच मॉडल
- 9. नॉकऑटजेएस - एक दृश्य में एकाधिक दृश्य मॉडल
- 10. एक मॉडल दृश्य क्या है?
- 11. क्या एक दृश्य मॉडल में तर्क होना चाहिए?
- 12. डब्ल्यूपीएफ में डिस्पोजेबल व्यू मॉडल का उपयोग कैसे करें?
- 13. डब्ल्यूपीएफ
- 14. डब्ल्यूपीएफ आवेदन
- 15. मॉडल और दृश्य मॉडल के लिए प्रमाणीकरण सर्वोत्तम अभ्यास
- 16. एक दृश्य के साथ जुड़े एकाधिक दृश्य मॉडल
- 17. एक दृश्य में दृश्य मॉडल गुण के माध्यम से लूपिंग
- 18. मौजूदा दृश्य मॉडल से दृश्य मॉडल तक पहुंचने का सही तरीका
- 19. सी # WinForms मॉडल-व्यू-प्रस्तुतकर्ता (निष्क्रिय दृश्य)
- 20. केकेपीएचपी - बिना दृश्य और मॉडल के नियंत्रक
- 21. आईफोन मॉडल दृश्य छोटा है कि स्क्रीन
- 22. एमवीसी जहां तर्क नियंत्रक या दृश्य मॉडल
- 23. स्क्रॉल WPF SelectedItem एक दृश्य मॉडल
- 24. एक दृश्य के एक मॉडल segue
- 25. एमवीसी आंशिक दृश्य मॉडल ताज़ा नहीं
- 26. प्रति दृश्य या प्रति मॉडल ViewModel?
- 27. ASP.NET MVC दृश्य मॉडल सर्वोत्तम प्रथाओं
- 28. एमवीवीएम व्यू मॉडल में सी # डब्ल्यूपीएफ थ्रेड को कैसे संभालें
- 29. डब्ल्यूपीएफ
- 30. कुछ एमवीवीएम प्रश्न (डब्ल्यूपीएफ सी #)
नियंत्रण पुन: प्रयोज्य होना चाहिए, इसलिए कोड काम नहीं चलेगा - यह एक विशिष्ट दृश्य मॉडल पर नियंत्रण संबंध है। आदेश ... शायद नहीं - वे उपयोगकर्ता कार्यों के लिए अधिक हैं। INotifyProperty फिर बदल दिया? धन्यवाद :) – Vitaly
अधिक विशिष्टताओं को जानने के बिना मेरे लिए कहना मुश्किल है। लेकिन मैंने संबंधित जानकारी – ThomasAndersson
@Vitaly के कुछ लिंक में जोड़ा है यदि आप स्पष्ट व्यूमोडेल पर दृश्य डालने के बारे में चिंतित हैं, तो आप व्यूमोडेल को इंटरफ़ेस में लपेट सकते हैं। मैं संलग्न कमांड व्यवहार में देखता हूं वे स्वीकार्य अभ्यास बन रहे हैं। इसके अलावा, एमवीवीएमएल या कैलिब्रर्न को अपने एमवीवीएम काम में सहायता के लिए ढांचे के रूप में देखें, इससे आपको जीवन अधिक आसान बना देगा। – Agies