Ensure that you install ReactiveUI.WPF
into your application.
Your viewmodels should inherit from ReactiveObject
Use IActivatableViewModel
and WhenActivated
for lifecycle
- https://reactiveui.net/api/reactiveui/IActivatableViewModel/
- https://reactiveui.net/docs/handbook/when-activated/
Keep references to your subscriptions
Use disposables to manage lifetime, scope and resources:
Don't use eventhandlers, use the extension methods shipped in reactiveui.events.wpf
instead
When starting a WPF application from another application (e.g. Console) set RxApp.MainThreadScheduler
to a DispatcherScheduler
after creating the WPF application on a separate thread, to avoid threading errors.
Use your normal WPF concepts that you would usually use in WPF development. There's also some extension methods which will make your life easier