我有兩個視圖共享某個viewmodel中的一個可觀察集合,但具有不同的集合視圖參數。在MVVM Light中實現它的正確方法是什麼?是否支持非靜態虛擬機?我如何管理他們的一生並處理他們?Static ViewModels vs instanced ViewModels
6
A
回答
0
一些Laurent的examples of MVVM Light使用帶靜態視圖模型實例(單式)一ViewModelLocator的。請注意0接口。此外,非靜態虛擬機通常必須在視圖的構造函數中進行MEFed或構建。
0
對於ViewModels管理通常使用IOC模式。在MVVM Light框架中,它是一個SimpleIoc實現。
我更喜歡使用Ninject - http://www.ninject.org/
1
有!
默認情況下,從SimpleIoc解析的對象是單例。爲了解決這個問題,你需要傳遞一個唯一的標識符作爲ServiceLocator.GetInstance方法的一個參數。
見下文:
我們有兩個屬性返回相同的視圖模型。一個返回一個單例,另一個將每次返回一個新的實例。
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()); }
}
}
相關問題
- 1. MvxFragment ViewModels
- 2. Thread.CurrentThread.CurrentUICulture Vs的接受語言中的ViewModels
- 3. ViewModels per View
- 4. ViewModels和IsolatedStorageSettings
- 5. ViewModels和KnockoutJS
- 6. ViewModels或ViewBag?
- 7. Multiple Knockout ViewModels
- 8. ValidationResult和ViewModels
- 9. ViewModels和渲染
- 10. C#wpf UnitTesting viewmodels
- 11. 自定義DataAnnotation&ViewModels
- 12. WPF DataBinding之間ViewModels
- 13. UserControls的ItemsControl與ViewModels
- 14. 如何組織viewModels?
- 15. MVVM && IOC &&子的ViewModels
- 16. MVC的ViewModels節省
- 17. 數據多的ViewModels
- 18. Caliburn.micro與多個ViewModels
- 19. ViewModels互相交談
- 20. Windows Phone 8 - MVVM ViewModels和App.xaml.cs
- 21. viewmodels之間通過屬性
- 22. 在區域中連接Viewmodels
- 23. 視圖中的多個ViewModels
- 24. Knockout.js中的繼承ViewModels
- 25. MVVM WPF - Viewmodels的用法
- 26. Xaml動態網格與Viewmodels
- 27. 綁定列表框的ViewModels
- 28. 使用綁定在的ViewModels
- 29. MVC ViewModels和網址生成
- 30. ViewModelLocator中的ViewModels MVVM Light
您是否使用了DI容器,如統一或MEF? – PVitt 2011-05-13 10:49:05
不,我使用基本的MVVM Light模板。 – 2011-05-13 10:49:59