我有两个视图共享某个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