के साथ व्यूमोडेल पर निर्भरता प्रॉपर्टी का उपयोग करना मैं एक इकाई फ्रेमवर्क मॉडल के साथ एमवीवीएम पैटर्न का उपयोग कर सी # में डेस्कटॉप एप्लिकेशन लिख रहा हूं। मैं अपने वीएम में निर्भरता प्रॉपर्टीज का उपयोग करता हूं और (आमतौर पर) इस प्रणाली को INotifyPropertyChanged को लागू करने के लिए पसंद करता हूं। मैं चीजों को सुसंगत रखना चाहता हूं। मेरा वीएम मॉडल में इकाइयों तक पहुंचता है और मैंने चीजों को काफी अलग रखने में कामयाब रहा है - दृश्य को बाध्यकारी और कमांड नामों को छोड़कर वीएम का कोई ज्ञान नहीं है और मॉडल को वीएम के बारे में पता है।एंटिटी फ्रेमवर्क
वीएम में INotifyPropertyChanged का उपयोग करना, यह मॉडल की इकाइयां अद्यतन करने के लिए बहुत आसान लगता है:
public string Forename
{
get { return CurrentPerson.Forename; }
set
{
if (Forename != value)
{
CurrentPerson.Forename = value;
NotifyPropertyChanged("Forename");
}
}
}
... जहां CurrentPerson इकाई डेटा मॉडल से एक व्यक्ति वस्तु स्वतः निर्मित है। इसलिए फोरनाम स्टोर करने के लिए विशेष रूप से कोई निजी क्षेत्र नहीं बनाया गया है।
निर्भरता प्रॉपर्टीज के साथ, ऐसा लगता है कि मुझे एक डीपी बनाना होगा, GetValue और Setvalue का उपयोग करके डिफ़ॉल्ट संपत्ति जोड़ें, और CurrentPangedCallback का उपयोग CurrentPerson Entity को अपडेट करने के लिए करें। इस स्थिति में कॉलबैक को कॉल करना मेरे अन्य वीएम के अनुरूप होने के लिए ओवरहेड जोड़ रहा है।
सवाल यह है कि क्या इनमें से एक या अन्य तरीकों से मैं चीजें कर सकता हूं? इस उदाहरण में, क्या मुझे निर्भरता प्रॉपर्टी या INotifyPropertyChanged का उपयोग करना चाहिए? एक बात जो इंगित की जानी चाहिए कि यह संभावित रूप से एक बहुत बड़े पैमाने पर प्रोजेक्ट (प्लगइन के साथ और विभिन्न मशीनों से बहुत सारे डेटाबेस तक पहुंच) के साथ होगा और यह कि सबकुछ वास्तव में पुन: प्रयोज्य होना चाहिए, और मॉड्यूल को "डिस्कनेक्ट" के रूप में यथासंभव होना चाहिए ।
दृश्य मॉडल में निर्भरता गुण का उपयोग करने का क्या लाभ है? दूसरे शब्दों में - यह कितना अतिरिक्त मूल्य लाता है कि 'INotifyPropertyChanged' ऑफर नहीं करता है। –
मैं अच्छी गति और डीपी के साथ आने वाली अच्छी बाध्यकारी सुविधाओं की तलाश में हूं। ध्यान रखें कि मैं अपने दृश्य में एक्सएएमएल के साथ सीधे डीपी के लिए बाध्यकारी हूं। अक्सर संपत्ति मूल्य परिवर्तन होने की संभावना है। उन संदर्भों से जिन्हें मैंने पहले पाया है, बाध्यकारी के साथ गति के लिए, डीपी जाने का रास्ता है। मेरे बाकी के डिजाइन के साथ भी स्थिरता है। हालांकि, इनमें से कोई भी अच्छा नहीं है अगर एंटीटी ऑब्जेक्ट्स में अलग-अलग संशोधन के साथ चल रहे उन सभी कॉलबैक से इनकार किया जाता है। –