У меня будет MasterViewModel
, который управляет страницами "мастера" и текущим состоянием
Он будет содержать следующие свойства:
List<ViewModelBase> Pages
int CurrentPageIndex
ViewModelBase CurrentPage
, что возвращает Pages[CurrentPageIndex]
MyClass DataObject
MasterView
, который идет с MasterViewModel
, будет не более чем ContentControl
с его Content
, связанным с CurrentPage
. Я бы, вероятно, также определил DataTemplates
в MasterView
, который сообщает WPF, какой View
рисовать, с каким Page
Ваш MasterViewModel
будет отвечать за обработку страниц и передачу каждой странице ссылки на необходимые данные. Например, в конструкторе это может сказать,
public MasterViewModel(MyClass dataObject)
{
DataObject = dataObject;
Pages.Add(new InfoPage(DataObject));
Pages.Add(new AddressPage(DataObject.Addresses));
Pages.Add(new PhonePage(DataObject.Phones));
Pages.Add(new SaveMyClassPage(DataObject));
CurrentPageIndex = 0;
}
У меня есть пример здесь , если вам интересно