Upgrade from v1.2
Breaking Changes in v2.0
| v1.2 | v2.0 |
|---|---|
AddMvvm* registers View + ViewModel in DI |
Only ViewModel in DI; TView is mapping only |
AddMvvmHybrid available |
Removed — use AddMvvmTransient or AddMvvmSingleton |
ViewLocator resolves View from DI |
ViewLocator uses Activator.CreateInstance |
CreateShell: new MainWindow() |
CreateShell<MainWindow, MainView>() (2.0.1+, still new, not DI) |
Migration Steps
1. Replace AddMvvmHybrid
// v1.2
services.AddMvvmHybrid<SettingsView, SettingsViewModel>();
// v2.0 — pick one lifetime for the ViewModel
services.AddMvvmSingleton<SettingsView, SettingsViewModel>();
// or
services.AddMvvmTransient<SettingsView, SettingsViewModel>();
2. Shell creation
public override void CreateShell(IServiceProvider sp)
{
CreateShell<MainWindow, MainView>();
}
Do not AddTransient<MainWindow>() — shell views are not in DI (2.0.1+).
Upgrading from 2.0.0? See Upgrade from 2.0.0 (
CreateShellFromDiwas removed in 2.0.1).
3. Navigation
// v1.2 — View from DI
var view = sp.GetRequiredService<MainView>();
// v2.0 — prefer ViewModel-first
NavigationHost.Content = sp.GetRequiredService<MainViewModel>();
// or View-first: new MainView() with AutoWireViewModel
Unchanged
ILifecycleAwareIModule/ module systemViewModelLocator/ View-first binding- AOT annotations