Способов много.
Вот несколько:
1. Используйте MVVM пример
2. Создание UserControl с содержимым и загрузка их в контейнер типа ContentPresenter
3. Pages
4. Шаблоны содержимого
5. TabPages тоже можно заюзать на крайний случай. В WPF вкладки можно скрывать.
ex Software Engineer at Reddit TS/React/GraphQL/Go
тут достаточно хорошо описано, но применительно к призме (сходу трудновато будет понять): navogation in prism
кратко говоря можно делать 2 способами: переключать контролы (view-based) или менять состояние модели представления (state-based), то есть скрывая те или иные элементы флагами.
А зачем вам вообще база данных. Обьем данных у вам не большой, разрастаться не будет, многопользовательский доступ не нужен. Храните данные в обычных Json или Xml файлах.
Для локальной базы может хватить и .mdb, провайдер вшит во все актуальные версии Windows.
Можно выбрать и SQLite, на официальном сайте есть информация о том, какие библиотеки нужно таскать за проектом, чтобы он запускался на конечных машинах.