WPF com Unity Container - Como registrar e resolver ViewModels para Views
Oi eu estou tentando usar o contêiner Unity no aplicativo WPF MVVM. Eu não usei Prism como parece pesado. Aqui está a estrutura da aplicação. Eu estou tentando descobrir como resolver modos de exibição para ViewModels e dependências dos modelos de exibição (serviços).
Aplicação:Views
MainWindow.xaml
CustomerList.xaml
CustomerDetail.xaml
BookList.xaml
BookDetail.xaml
ViewModels
MainViewModel
CustomerListViewModel
BoolListViewModel
BookDetailViewModel
CustomerDetailViewModel
Biblioteca
ICustomerService (AddCustomer, SaveCustomer, GetCustomers, GetCustomer)
CustomerService:ICustomerService
IBookService (GetBooks, GetBook)
BookService:IBookService
IBookReserveService(Reserve, Return)
BookReserveService:IBookReserveService
MainViewModel precisa de referência para ICustomerService e IBookService
CustomerListViewModel precisa de referência para ICustomerService
BoolListViewModel precisa de referência para o IBookService
BookDetailViewModel precisa de referência para ICustomerService e IBookReserveService
CustomerDetailViewModel precisa de referência para ICustomerService e IBookReserveService
Eu tenho a propriedade getter setter para serviços em cada viewmodels.
Eu estou correndo em questões sobre como eu uso Injeção de Dependência com o WPF especialmente para Views e ViewModel. Eu tentei com Unity para registrar e resolver em um aplicativo de console que está funcionando bem. Mas gostaria de algumas idéias sobre como isso pode ser feito para o aplicativo WPF. Eu tentei me registrar
container.RegisterType<ICustomerService, CustomerService>()
container.RegisterType<IBookReserveService, BookReserveService>()
container.RegisterType<IBookService, BookService>()
e resolvê-lo usando container.Resolve ();
Mas eu não tinha certeza de como saber qual visualização deve usar qual modelo de exibição e resolvê-los quando necessário, e não quando o aplicativo é iniciado. Além disso, não resolvo todo o mapeamento no início do aplicativo. Isso deve ser feito quando o menu (Selecionar um cliente para ver detalhes, selecionar um livro para exibir detalhes, salvar cliente, reservar livro etc.) estiver selecionado.
Principalmente o que eu li queria usar IView e IViewModel. Mas não tenho certeza se entendi a vantagem disso.
Qualquer ajuda é muito apreciada.