WPF con Unity Container - Cómo registrar y resolver ViewModels a Views
Hola, estoy intentando usar el contenedor de Unity en la aplicación MVVM de WPF. No he usado el prisma como parece pesado. Aquí está la estructura de la aplicación. Estoy tratando de averiguar cómo resolver las vistas a los modelos de vista y las dependencias de los modelos de vista (servicios).
Solicitud:Puntos de vista
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 necesita una referencia a ICustomerService, e IBookService
CustomerListViewModel necesita una referencia a ICustomerService
BoolListViewModel necesita una referencia a IBookService
BookDetailViewModel necesita una referencia a ICustomerService y IBookReserveService
CustomerDetailViewModel necesita una referencia a ICustomerService y IBookReserveService
Tengo propiedad de establecedor getter para los servicios en cada modelos de vista.
Estoy teniendo problemas con la forma en que uso la inyección de dependencias con WPF, especialmente para las vistas y ViewModel. Intenté con Unity registrarme y resolver en una aplicación de consola que funciona bien. Pero me gustaría tener algunas ideas sobre cómo se podría hacer esto para la aplicación WPF. Intenté registrarme
container.RegisterType<ICustomerService, CustomerService>()
container.RegisterType<IBookReserveService, BookReserveService>()
container.RegisterType<IBookService, BookService>()
y resolverlo utilizando container.Resolve ();
Pero no estaba seguro de cómo podría saber qué vista debe usar qué modelo de vista y resolverlos cuando sea necesario y no cuando se inicia la aplicación. Además, no puedo resolver todos los mapas en el inicio de la aplicación. Se debe hacer cuando se selecciona el menú (Selección de un cliente para ver detalles, selección de un libro para ver detalles, guardar clientes, reservar libro, etc.).
Principalmente lo que leí quería usar IView y IViewModel. Pero no estoy seguro de haber entendido la ventaja en ello.
Cualquier ayuda es muy apreciada.