WPF z Unity Container - Jak zarejestrować i rozwiązać ViewModels do widoków

Hi Próbuję użyć kontenera Unity w aplikacji WPF MVVM. Nie używałem pryzmatu, ponieważ wydaje się ciężki. Oto struktura aplikacji. Próbuję dowiedzieć się, jak rozwiązać widoki do ViewModels i zależności modeli widoku (usług).

Podanie:

Widoki

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

ViewModels

MainViewModel

CustomerListViewModel

BoolListViewModel

BookDetailViewModel

CustomerDetailViewModel

Biblioteka

ICustomerService (AddCustomer, SaveCustomer, GetCustomers, GetCustomer)

CustomerService:ICustomerService

IBookService (GetBooks, GetBook)

BookService:IBookService

IBookReserveService(Reserve, Return)

BookReserveService:IBookReserveService

MainViewModel wymaga odniesienia do ICustomerService i IBookService

CustomerListViewModel wymaga odwołania do usługi ICustomerService

BoolListViewModel wymaga odwołania do IBookService

BookDetailViewModel wymaga odniesienia do ICustomerService i IBookReserveService

CustomerDetailViewModel wymaga odwołania do ICustomerService i IBookReserveService

Mam właściwość ustawiania gettera dla usług w każdym viewmodelu.

Używam do problemów w jaki sposób użyć Dependency Injection z WPF, zwłaszcza dla widoków i ViewModel. Próbowałem z Unity zarejestrować się i rozwiązać w aplikacji konsoli, która działa dobrze. Ale chciałbym kilka pomysłów, w jaki sposób można to zrobić dla aplikacji WPF. Próbowałem zarejestrować się

 container.RegisterType<ICustomerService, CustomerService>()
 container.RegisterType<IBookReserveService, BookReserveService>()
 container.RegisterType<IBookService, BookService>()

i rozwiąż go za pomocą container.Resolve ();

Ale nie byłam pewna, w jaki sposób mogę stwierdzić, który widok musi wykorzystywać model widoku i rozwiązywać je, gdy jest to wymagane, a nie kiedy aplikacja się uruchamia. Ponadto nie muszę rozwiązywać wszystkich mapowań w starcie aplikacji. Należy to zrobić, gdy wybrane jest menu (Wybieranie klienta, aby wyświetlić szczegóły, wybór książki, aby wyświetlić szczegóły, zapisać klienta, książkę rezerwową itp.).

Głównie to, co przeczytałem, chciało używać IView i IViewModel. Ale nie jestem pewien, czy zrozumiałem tę przewagę.

Każda pomoc jest bardzo mile widziana.

questionAnswers(1)

yourAnswerToTheQuestion