Могу ли я спросить, как вы разрешаете пользователю переключаться между представлениями? Это ключевая комбинация? Mouseclick
Не то чтобы он отвечал на ваш вопрос как таковой, но я предлагаю, чтобы это звучало как идеальный сценарий для управления вкладками. А с WPF он не обязательно должен выглядеть как элемент управления с вкладками.
Если вы используете TabControl, это открывает возможность использования события SelectionChanged, выходящего из TabControl, чтобы вы могли сказать фоновым потокам остановиться и вы можете выгрузить все, что вам нужно выгрузить.
В зависимости от того, как вы используете TabControl, пользовательский интерфейс может быть несколько виртуализирован. Это означает, что всякий раз, когда вкладка отменяется, весь пользовательский интерфейс для этой вкладки уничтожается и воссоздается при следующем выборе. Это будет вести себя так, если вы используете шаблон MVVM или PresentationModel и загружаете ViewModels в качестве элементов для вашего TabControl и используете DataTemplates для представлений. Если вы просто поместите TabItems в TabControl с элементами управления внутри них, он не будет вести себя таким образом.
Что касается шаблонов, я определенно рекомендую MVVM . Может потребоваться некоторое время, чтобы догнать и понять это, но я бы никогда не сделал WPF без него. Если вам нужны дополнительные ресурсы или примеры, дайте мне знать.
редактирование:
Я перечитал ваш вопрос и заметил, что вам может понадобиться другой тип навигации. Если у вас есть представления, для которых требуется переход к другим представлениям на основе действий пользователя, и вы не хотите, чтобы все представления были представлены пользователю, чтобы они могли выбрать, какое из них они хотят просмотреть (например, TabControl сделает), вы можете посмотреть на WPF Navigation . Навигация - это то, что MS добавила в WPF, чтобы обеспечить навигацию в стиле браузера в приложении WPF. Эта статья MSDN должна быть хорошим источником информации о подобных вещах.