У меня нет общедоступного примера, но я сделал это в приложениях Silverlight.
Для организовать верхний уровень контента. Когда фрейм перешел на новую страницу, я создал область жизненного цикла, в которой я разрешил корневую модель представления страницы, которую я связал со страницей через атрибут:
[ViewModel(typeof(OrdersViewModel))]
public class OrdersView : Page
Когда фрейм переходил на другую страницу, я удалял область жизненного цикла перед созданием следующей.
Тот же шаблон применим к открытию диалогов. Каждое диалоговое окно получает свою собственную область действия и модель представления. Когда он закрывается, область действия уничтожается.
Есть также ситуации, которые не укладываются точно в эти границы. Иногда вам нужно больше детализации, и вы можете углубиться в области жизненного цикла, используя контекстные области действия. Эти ситуации, как правило, единичны и включают в себя некоторый клей, чтобы начать масштабирование жизненного цикла.
Я считаю полезным мыслить с точки зрения единиц работы: вы фиксируете изменения в конце каждого прижизненный размах. Это делает объем набора данных естественной областью действия.
person
Bryan Watts
schedule
19.02.2011