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. Но не уверен, что понял в этом преимущество.
Любая помощь очень ценится.