У меня есть приложение, которое содержит иерархию View / Viewmodels.
ViewModelBase содержит две ViewModels
private AViewModel _aViewModel = new AViewModel();
private BViewModel _bViewModel = new AViewModel();
Мой XAML связывает DataControl с
private ViewModelBase _currentView {get; set;}
public ViewModelBase CurrentView
{
get
{
return _currentView;
}
set
{
_currentView = value;
RaisePropertyChanged("CurrentView");
}
}
И решает, какое представление отображать на основе DataTemplates
<DataTemplate DataType="{x:Type vm:AViewModel}">
<vw:AView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:BViewModel}">
<vw:BView />
</DataTemplate>
Все это прекрасно работает, но я не уверен, как сохранить данные между изменениями представления.Скажем, например, что AViewModel содержит строку с именем «Test» и имеет двухстороннюю привязку в AView.Изменяя представление с помощью CurrentView = _bviewmodel, мои данные не сохранятся, когда я вернусь к _aviewmodel - это лучший способ убедиться, что любые данные остаются между изменениями представления, а не каждый раз создавать новую пустую модель представления.Я должен получить _currentView для _aViewModel и затем вернуться к _currentView