मेरे पास एक व्यू, व्यूमोडेल और कस्टम टाइप क्लास के साथ एक साधारण परिदृश्य है।एमवीवीएम मॉडल देखने के लिए मॉडल संचार
मॉडल वर्ग की तरह कुछ है:
public class Person : Validation.DataError, INotifyPropertyChanged
{
#region INotifyProperty
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
public global::System.String name
{
get
{
return _name;
}
set
{
_name= value;
RaisePropertyChanged("name");
}
}
private global::System.String _name;
} ViewModel में
मैं एक व्यक्ति संपत्ति है:
private Model.Person person;
public Model.Person Person
{
get
{
return person;
}
set
{
this.person= value;
this.RaisePropertyChanged("Person");
this.SavePersonCommand.OnCanExecuteChanged();
}
}
मेरे विचार में मैं एक पाठ बॉक्स है कि करने के लिए बाध्य कर रहा है Person.name
तो व्यूमोडेल से निष्पादित नहीं कर रहा है टी विधि क्योंकि व्यक्ति वस्तु अभी भी वही है ... यह मॉडल प्रॉपर्टी में सेट विधि को निष्पादित कर रही है।
मैं उपयोगकर्ता को व्यक्ति का नाम बदलने और किसी अन्य विधि (वेब सेवा और अन्य सामग्री के माध्यम से खोज ...) पर कॉल करना चाहता हूं और मुझे लगता है कि यह कार्यक्षमता ViewModel में होनी चाहिए।
मैं विभिन्न व्यूमोडल्स और विचारों और दृश्यमानों के बीच संवाद करने के लिए एमवीवीएम लाइट टूलकिट से मैसेंजर का उपयोग कर रहा हूं।
अब मुझे नहीं पता कि मुझे इसके लिए मध्यस्थ का उपयोग करना चाहिए या अगर मुझे इसे हल करने का एक और तरीका पता होना चाहिए।
ऐसा लगता है कि आप एक अच्छे पथ नीचे जा रहे हैं। मुझे लगता है कि आप प्रमाणीकरण/INotifyPropertyChanged और सामान कार्यान्वित कर रहे हैं। शायद आप Csla.Net को देखना चाहते हैं, जो आपके लिए यह सामान संभाल लेगा। यह एक ढांचा प्रदान करता है जिस पर महान मॉडल बनाने के लिए, साथ ही विभिन्न यूआई के समर्थन में कुछ मदद प्रदान करता है (मूल रूप से उनमें से सभी)। http://www.lhotka.net/cslanet/ – Andy
आपके सुझाव के लिए धन्यवाद, मैं इसे देख लूंगा ;-) – zapico