WPF avec l'Unité de Conteneur - Comment enregistrer et résoudre les ViewModels de Vues

Salut, je suis en train d'utiliser l'Unité de conteneur dans WPF MVVM application. Je n'ai pas utilisé Prisme car il me semble lourd. Voici la structure de l'application. Je suis à essayer de comprendre comment résoudre les points de Vue à Viewmodel et les dépendances de la vue des modèles (des services).

Application:

Vues

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

Viewmodel

MainViewModel

CustomerListViewModel

BoolListViewModel

BookDetailViewModel

CustomerDetailViewModel

Bibliothèque

ICustomerService (AddCustomer, SaveCustomer, GetCustomers, GetCustomer)

CustomerService:ICustomerService

IBookService (GetBooks, GetBook)

BookService:IBookService

IBookReserveService(Reserve, Return)

BookReserveService:IBookReserveService
  1. MainViewModel besoins de référence pour ICustomerService, et IBookService
  2. CustomerListViewModel besoins de référence pour ICustomerService
  3. BoolListViewModel besoins de référence pour IBookService
  4. BookDetailViewModel besoins de référence pour ICustomerService, et IBookReserveService
  5. CustomerDetailViewModel besoins de référence pour ICustomerService, et IBookReserveService

J'ai getter le setter de la propriété pour les services dans chaque viewmodel.

Je suis en cours d'exécution dans des questions sur comment puis-je utiliser l'Injection de Dépendance avec WPF, surtout pour les Vues et ViewModel. J'ai essayé avec l'Unité d'enregistrer et de les résoudre dans une application console qui fonctionne bien. Mais j'aimerais quelques idées sur la façon dont cela pourrait être fait pour application WPF. J'ai essayé l'enregistrement

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

et de le résoudre à l'aide de
le conteneur.Resolve();

Mais je n'étais pas sûr de savoir comment je pourrais le dire à la vue qui doit utiliser la vue du modèle et de les résoudre quand il le faut et non pas lorsque l'application démarre. Aussi, je n'ai pas de résoudre tous les de la cartographie dans l'application de démarrage. Il doit être effectué lorsque le menu (Sélection d'un client pour visualiser le détail, la sélection d'un livre pour en voir le détail, enregistrer de la clientèle, de la réserve du livre etc.) est sélectionné.

Surtout ce que j'ai lu voulu utiliser IView et IViewModel. Mais pas sûr que j'ai compris l'avantage qu'elle procure.

Toute aide est grandement appréciée.

À l'aide de Prism serait vraiment simplifier l'ensemble du processus pour vous, car il est en charge de la création de votre point de vue avec votre conteneur IoC (l'Unité dans votre cas). Peut-être que cette question pourrait aider: stackoverflow.com/q/8617277/389966

OriginalL'auteur isakavis | 2012-11-20