Я использую MVVM Toolkit.В моих ViewModels я храню данные, которые я хотел бы сохранить при переключении ViewModel на другое.
Ответственным за переключение ViewModels является ViewModelLocator:
http://simplemvvmtoolkit.codeplex.com/wikipage?title=Getting%20Started point 8.
ViewModelLocator каждый раз возвращает новую ViewModel:
public class ViewModelLocator
{
// Create ProductListViewModel on demand
public ProductListViewModel ProductListViewModel
{
get
{
IProductServiceAgent serviceAgent = new MockProductServiceAgent();
return new ProductListViewModel(serviceAgent);
}
}
}
Я не хочу нарушать правила MVVM.Я думал о создании новых объектов, таких как:
public class ViewModelLocator
{
private ProductListViewModel productListViewModel;
// Create ProductListViewModel on demand
public ProductListViewModel ProductListViewModel
{
get
{
IProductServiceAgent serviceAgent = new MockProductServiceAgent();
if (productListViewModel == null)
productListViewModel = new ProductListViewModel(serviceAgent);
return productListViewModel;
}
}
}
... или при переключении ViewModel сериализации ViewModel, при загрузке его обратно - десериализации ...
Каково правильное решениеэта проблема?