MVVM学习
1:MVVMLight中通过IOC注册的服务或者是类是全局的整个工程都能访问到
2:向下的结构(viem→VM→Model)也不严格是这样
3:延迟SimpleIoc的注册
4:在Navigatedto的时候再赋值DataContext也不迟
5:
MainPage需要将它自己视为一个IDialogService注册到IoC容器中。因为一次只能由一个页面显示,所以同时需要在迁移到其他页面时注销。我们在OnNavigatedTo和OnNavigatedFrom方法中做这两个操作。
Figure 10. Registering and Unregistering the IDialogService in MainPage
protected override void OnNavigatedTo(NavigationEventArgs e) { Messenger.Default.Register<StatusMessage>( this, HandleStatusMessage); SimpleIoc.Default.Register<IDialogService>(() => this); base.OnNavigatedTo(e); } protected override void OnNavigatedFrom(NavigationEventArgs e) { Messenger.Default.Unregister<StatusMessage>( this, HandleStatusMessage); SimpleIoc.Default.Unregister<IDialogService>(); base.OnNavigatedFrom(e); }