ऐसी स्थिति को संभालने के बारे में कोई कैसे जाएगायह? एक ही POCO ऑब्जेक्ट के संदर्भ में एक से अधिक ViewModel होने। व्यूमोडेल ए पीओसीओ अपडेट करता है ... अब व्यूमोडेल बी को इसके बारे में किसी भी तरह से जानने की जरूरत है?
उत्तर:
जवाब के लिए 2 № 1यह मानते हुए कि आपका POCO लागू नहीं हो सकता INotifyPropertyChanged
, आप एक का उपयोग कर सकते हैं मध्यस्थ POCO बदलने पर अन्य दृश्य मॉडलों को सचेत करने के लिए पैटर्न
public interface ICareWhenAModelChanges<T>
{
void ModelUpdated(T updatedModel);
}
public class ModelChangeMediator<T>
{
private List<ICareWhenAModelChanges<T>> _listeners = new List<ICareWhenAModelChanges<T>>();
public void Register(ICareWhenAModelChanges<T> listener)
{
_listeners.Add(listener);
}
public void NotifyThatModelIsUpdated(T updatedModel)
{
foreach (var listener in _listeners) listener.ModelUpdated(updatedModel);
}
}
आपका व्यू मॉडल तब लागू कर सकता है ICareWhenAModelChanges<T>
इंटरफ़ेस, मध्यस्थ के एक साझा उदाहरण के साथ खुद को पंजीकृत करें (या तो एक सिंगलटन या बेहतर, किसी प्रकार के डीआई/आईओसी ढांचे के माध्यम से प्राप्त) और जो कुछ भी करने की आवश्यकता है उसे करें ModelUpdated
तरीका