2011-05-13 11 views
6

मेरे पास दो दृश्य हैं जो कुछ व्यूमोडेल से एक अवलोकन संग्रह साझा करते हैं, लेकिन विभिन्न संग्रह दृश्य पैरामीटर के साथ। एमवीवीएम लाइट में इसे लागू करने का सही तरीका क्या है? क्या गैर स्थैतिक वीएम के लिए कोई समर्थन है? मैं अपने जीवनकाल का प्रबंधन कैसे कर सकता हूं और उनका निपटान कैसे कर सकता हूं?स्टेटिक व्यू मॉडल्स बनाम इंस्टेंटेड व्यूमोडल्स

+0

क्या आप एक डीआई कंटेनर जैसे यूनिटी या एमईएफ का उपयोग कर रहे हैं? – PVitt

+0

नहीं, मैं मूल एमवीवीएम लाइट टेम्पलेट का उपयोग करता हूं। –

उत्तर

0

लॉरेन के examples of MVVM Light में से कुछ स्थिर दृश्य मॉडल उदाहरणों (सिंगलटन-जैसी) के साथ व्यूमोडेल लोकेटर का उपयोग करते हैं। ICleanup इंटरफ़ेस पर ध्यान दें। इसके अलावा, गैर स्थैतिक वीएम को आमतौर पर व्यू के कन्स्ट्रक्टर में एमईएफड किया जाना चाहिए या बनाया जाना चाहिए।

0

व्यू मॉडेल प्रबंधन आमतौर पर आईओसी पैटर्न का उपयोग करते हैं। एमवीवीएम लाइट फ्रेमवर्क में यह एक सरल कार्यान्वयन है।

मैं Ninject का उपयोग करना पसंद - http://www.ninject.org/

1

नहीं है!

सरलआईक से हल की गई डिफ़ॉल्ट वस्तुएं सिंगलेट हैं। इसके आस-पास पहुंचने के लिए आपको ServiceLocator.GetInstance विधि के पैरामीटर के रूप में एक अद्वितीय पहचानकर्ता को पास करने की आवश्यकता है।

नीचे देखें:

हम एक ही viewmodel लौटने दो गुण होते हैं। एक सिंगलटन देता है और दूसरा हर बार एक नया उदाहरण लौटाएगा।

class ViewModelLocator 
{ 
    static ViewModelLocator() 
    { 
     ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); 
     if (ViewModelBase.IsInDesignModeStatic) 
     { 
      SimpleIoc.Default.Register<IDataService, Design.DesignDataService>(); 
     } 
     else 
     { 
      SimpleIoc.Default.Register<IDataService, DataService>(); 
     } 

     SimpleIoc.Default.Register<MainViewModel>(); 
     SimpleIoc.Default.Register<SecondViewModel>(); 
    } 


    public MainViewModel MainAsSingleton 
    { 
     get { return ServiceLocator.Current.GetInstance<MainViewModel>(); } 
    } 

    public MainViewModel MainAsDiffrentInstanceEachTime 
    { 
     get { return ServiceLocator.Current.GetInstance<MainViewModel>(Guid.NewGuid().ToString()); } 
    } 
} 
संबंधित मुद्दे