मैं डब्ल्यूपीएफ में एक कुकबुक विंडो एप्लिकेशन पर काम कर रहा हूं जिसमें एक खिड़की और कई उपयोगकर्ता नियंत्रण शामिल हैं जो एक दूसरे को रिले के साथ बदल रहे हैं। एमवीवीएम लाइट से संदेशों का उपयोग करते हुए कॉमांड।एमवीवीएम लाइट एप्लिकेशन - व्यूमोडल्स को ठीक से कैसे साफ करें
एप्लिकेशन डीआरबी के साथ काम करता है जो इकाई फ्रेम से उत्पन्न होता है। समस्या सभी लेकिन फ़ाइल की पहली निष्पादन के बाद आती है कि इस कार्यक्रम के कई warings और इसी प्रकार के त्रुटियों से पता चलता है:
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<MainWindowViewModel>();
SimpleIoc.Default.Register<MainViewModel>();
SimpleIoc.Default.Register<FoodTypeViewModel>();
SimpleIoc.Default.Register<ShoppingCartViewModel>();
SimpleIoc.Default.Register<MenuViewModel>();
SimpleIoc.Default.Register<MenuListViewModel>();
SimpleIoc.Default.Register<MenuCalendarViewModel>();
SimpleIoc.Default.Register<ChooseFoodWindowViewModel>();
}
और यह भी:
Warning 1 Could not copy "...\cookbook\Cookbook.Services\Database1.mdf" to "bin\Debug\Database1.mdf". Beginning retry 1 in 1000ms. The process cannot access the file '...\cookbook\Cookbook.Services\Database1.mdf' because it is being used by another process. Cookbook.Services
ViewModelLocator में मैं इस राशि उन्हें रों बनाने के लिए सिंगलटन बनाने के लिए
BackToMainCommand = new RelayCommand(() =>
{
Messenger.Default.Send<ViewModelBase>(new MainViewModel());
},
() => true);
मैं ViewModels के साथ toyed है: संदेशों मैं userControls स्विच करने के लिए उपयोग कर रहा हूँ जैसे ViewModels के नए उदाहरणों, पैदा कर रहे ure प्रणाली में केवल एक प्रतियां हैं, लेकिन SimpleIoc को पंजीकरण के लिए सार्वजनिक रचनाकारों की आवश्यकता है। और मुझे यह भी नहीं पता कि क्या इससे मेरी समस्या भी मदद मिलेगी। इसके अलावा मैंने आपको यह नहीं बताया कि ViewModelLocator का उपयोग केवल xaml में किया जाता है, इसलिए मेरे पास सामान को साफ करने का भी उदाहरण नहीं है। (मैं शायद इसे गलत इस्तेमाल कर रहा हूं लेकिन मुझे नहीं पता कि इसका उपयोग कैसे किया जाना चाहिए)
समस्या यह है कि मुझे नहीं पता कि सभी दृश्य मॉडल को कैसे और कहाँ साफ करना है क्योंकि वे कई स्थानों पर बनाए जा रहे हैं। मैंने उल्लेख किया है और उनमें से कुछ शायद * .mdf फ़ाइल धारण कर रहे हैं।
है कि आप चल रहे थे आवेदन/डिबगिंग (1) के लिए बनाई गई प्रक्रिया अभी तक पूरा नहीं किया है, या (2) डेटाबेस फ़ाइल के लिए सभी कनेक्शनों को बंद नहीं। तो यदि आप इसे फिर से बनाते हैं, तो इसकी फ़ाइल हैंडल अभी भी खुली है और आप खुली फ़ाइल पर प्रतिलिपि नहीं बना सकते हैं। ध्यान दें कि जब डिबगिंग करते हैं, खासकर यदि आपने "डिबगिंग रोकें" बटन का उपयोग करके अपना डिबगिंग सत्र बंद कर दिया है, तो डीबग प्रक्रिया सीधे नहीं मारे जाती है। विजुअल स्टूडियो से बाहर निकलना और इसे फिर से शुरू करना आम तौर पर इसे हल करता है। – Alex
ठीक है, वे कनेक्शन कुछ व्यूमोडल्स में हैं जो डीबी से सेवाओं का उपयोग कर रहे हैं। और उन व्यूमोडल्स मुझे लगता है कि लोकेटर या संदेश (यदि मैं गलत नहीं हूं) द्वारा पकड़ रहा है। मुझे पता है कि दृश्य स्टूडियो को पुन: प्रारंभ इससे समस्या का समाधान लेकिन मैं इसे ठीक करने के लिए तो मैं काम कर आवेदन के बाद से यह और भी तब होगा, जब मैं बाहर निकलें बटन या खिड़की से पार के साथ अनुप्रयोग से बाहर हो सकता है की जरूरत है। – Dracke