WPF с Unity Container - Как зарегистрировать и разрешить ViewModels для Views

Привет я пытаюсь использовать контейнер Unity в приложении WPF MVVM. Я не использовал Prism, как кажется, тяжелым. Вот структура приложения. Я пытаюсь выяснить, как разрешить представления в ViewModels и зависимости моделей представлений (сервисов).

Заявка:

Просмотры

MainWindow.xaml
CustomerList.xaml
CustomerDetail.xaml
BookList.xaml
BookDetail.xaml

ViewModels

MainViewModel

CustomerListViewModel

BoolListViewModel

BookDetailViewModel

CustomerDetailViewModel

Библиотека

ICustomerService (AddCustomer, SaveCustomer, GetCustomers, GetCustomer)

CustomerService:ICustomerService

IBookService (GetBooks, GetBook)

BookService:IBookService

IBookReserveService(Reserve, Return)

BookReserveService:IBookReserveService

MainViewModel нужна ссылка на ICustomerService и IBookService

CustomerListViewModel нужна ссылка на ICustomerService

BoolListViewModel нужна ссылка на IBookService

BookDetailViewModel нуждается в ссылке на ICustomerService и IBookReserveService

CustomerDetailViewModel нуждается в ссылке на ICustomerService и IBookReserveService

У меня есть свойство getter setter для служб в каждой модели просмотра.

Я сталкиваюсь с вопросами о том, как использовать Dependency Injection с WPF, особенно для Views и ViewModel. Я пытался с Unity зарегистрироваться и решить в консольном приложении, которое работает нормально. Но я хотел бы поделиться некоторыми идеями о том, как это можно сделать для приложения WPF. Я пытался зарегистрироваться

 container.RegisterType()
 container.RegisterType()
 container.RegisterType()

и разрешите его с помощью container.Resolve ();

Но я не был уверен, как определить, какое представление должно использовать какую модель представления, и разрешить их при необходимости, а не при запуске приложения. Кроме того, я не разрешаю все сопоставления при запуске приложения. Это должно быть сделано, когда выбрано меню (Выбор клиента для просмотра деталей, выбор книги для просмотра деталей, сохранение клиента, резервная книга и т. Д.).

В основном то, что я прочитал, хотел использовать IView и IViewModel. Но не уверен, что понял в этом преимущество.

Любая помощь очень ценится.

Ответы на вопрос(1)

Ваш ответ на вопрос