diff --git a/src/Avalonia.ReactiveUI/AutoDataTemplateBindingHook.cs b/src/Avalonia.ReactiveUI/AutoDataTemplateBindingHook.cs
index fe4e9dd94a..b6cdb77f81 100644
--- a/src/Avalonia.ReactiveUI/AutoDataTemplateBindingHook.cs
+++ b/src/Avalonia.ReactiveUI/AutoDataTemplateBindingHook.cs
@@ -29,7 +29,7 @@ namespace Avalonia.ReactiveUI
///
public bool ExecuteHook(
- object source, object target,
+ object? source, object target,
Func[]> getCurrentViewModelProperties,
Func[]> getCurrentViewProperties,
BindingDirection direction)
diff --git a/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj b/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
index 624c5772a9..2792ae1c91 100644
--- a/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
+++ b/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
@@ -3,6 +3,8 @@
netstandard2.0
Avalonia.ReactiveUI
false
+ enable
+ nullable
diff --git a/src/Avalonia.ReactiveUI/ReactiveUserControl.cs b/src/Avalonia.ReactiveUI/ReactiveUserControl.cs
index f4824ade0a..4987349162 100644
--- a/src/Avalonia.ReactiveUI/ReactiveUserControl.cs
+++ b/src/Avalonia.ReactiveUI/ReactiveUserControl.cs
@@ -17,8 +17,8 @@ namespace Avalonia.ReactiveUI
/// ViewModel type.
public class ReactiveUserControl : UserControl, IViewFor where TViewModel : class
{
- public static readonly StyledProperty ViewModelProperty = AvaloniaProperty
- .Register, TViewModel>(nameof(ViewModel));
+ public static readonly StyledProperty ViewModelProperty = AvaloniaProperty
+ .Register, TViewModel?>(nameof(ViewModel));
///
/// Initializes a new instance of the class.
@@ -34,16 +34,16 @@ namespace Avalonia.ReactiveUI
///
/// The ViewModel.
///
- public TViewModel ViewModel
+ public TViewModel? ViewModel
{
get => GetValue(ViewModelProperty);
set => SetValue(ViewModelProperty, value);
}
- object IViewFor.ViewModel
+ object? IViewFor.ViewModel
{
get => ViewModel;
- set => ViewModel = (TViewModel)value;
+ set => ViewModel = (TViewModel?)value;
}
protected override void OnDataContextChanged(EventArgs e)
@@ -51,7 +51,7 @@ namespace Avalonia.ReactiveUI
ViewModel = DataContext as TViewModel;
}
- private void OnViewModelChanged(object value)
+ private void OnViewModelChanged(object? value)
{
if (value == null)
{
diff --git a/src/Avalonia.ReactiveUI/ReactiveWindow.cs b/src/Avalonia.ReactiveUI/ReactiveWindow.cs
index 758a807bfc..726fb3d661 100644
--- a/src/Avalonia.ReactiveUI/ReactiveWindow.cs
+++ b/src/Avalonia.ReactiveUI/ReactiveWindow.cs
@@ -17,8 +17,8 @@ namespace Avalonia.ReactiveUI
/// ViewModel type.
public class ReactiveWindow : Window, IViewFor where TViewModel : class
{
- public static readonly StyledProperty ViewModelProperty = AvaloniaProperty
- .Register, TViewModel>(nameof(ViewModel));
+ public static readonly StyledProperty ViewModelProperty = AvaloniaProperty
+ .Register, TViewModel?>(nameof(ViewModel));
///
/// Initializes a new instance of the class.
@@ -35,19 +35,19 @@ namespace Avalonia.ReactiveUI
///
/// The ViewModel.
///
- public TViewModel ViewModel
+ public TViewModel? ViewModel
{
get => GetValue(ViewModelProperty);
set => SetValue(ViewModelProperty, value);
}
- object IViewFor.ViewModel
+ object? IViewFor.ViewModel
{
get => ViewModel;
- set => ViewModel = (TViewModel)value;
+ set => ViewModel = (TViewModel?)value;
}
- private void OnDataContextChanged(object value)
+ private void OnDataContextChanged(object? value)
{
if (value is TViewModel viewModel)
{
@@ -59,7 +59,7 @@ namespace Avalonia.ReactiveUI
}
}
- private void OnViewModelChanged(object value)
+ private void OnViewModelChanged(object? value)
{
if (value == null)
{
diff --git a/src/Avalonia.ReactiveUI/RoutedViewHost.cs b/src/Avalonia.ReactiveUI/RoutedViewHost.cs
index 421633cd58..63456bc13a 100644
--- a/src/Avalonia.ReactiveUI/RoutedViewHost.cs
+++ b/src/Avalonia.ReactiveUI/RoutedViewHost.cs
@@ -55,8 +55,8 @@ namespace Avalonia.ReactiveUI
///
/// for the property.
///
- public static readonly StyledProperty RouterProperty =
- AvaloniaProperty.Register(nameof(Router));
+ public static readonly StyledProperty RouterProperty =
+ AvaloniaProperty.Register(nameof(Router));
///
/// Initializes a new instance of the class.
@@ -67,12 +67,12 @@ namespace Avalonia.ReactiveUI
{
var routerRemoved = this
.WhenAnyValue(x => x.Router)
- .Where(router => router == null)
- .Cast
/// New content to set.
- private async void UpdateContentWithTransition(object content)
+ private async void UpdateContentWithTransition(object? content)
{
if (PageTransition != null)
await PageTransition.Start(this, null, true);
diff --git a/src/Avalonia.ReactiveUI/ViewModelViewHost.cs b/src/Avalonia.ReactiveUI/ViewModelViewHost.cs
index 0169b268ca..c88323d674 100644
--- a/src/Avalonia.ReactiveUI/ViewModelViewHost.cs
+++ b/src/Avalonia.ReactiveUI/ViewModelViewHost.cs
@@ -15,8 +15,8 @@ namespace Avalonia.ReactiveUI
///
/// for the property.
///
- public static readonly AvaloniaProperty ViewModelProperty =
- AvaloniaProperty.Register(nameof(ViewModel));
+ public static readonly AvaloniaProperty ViewModelProperty =
+ AvaloniaProperty.Register(nameof(ViewModel));
///
/// Initializes a new instance of the class.
@@ -34,7 +34,7 @@ namespace Avalonia.ReactiveUI
///
/// Gets or sets the ViewModel to display.
///
- public object ViewModel
+ public object? ViewModel
{
get => GetValue(ViewModelProperty);
set => SetValue(ViewModelProperty, value);
@@ -43,13 +43,13 @@ namespace Avalonia.ReactiveUI
///
/// Gets or sets the view locator.
///
- public IViewLocator ViewLocator { get; set; }
+ public IViewLocator? ViewLocator { get; set; }
///
/// Invoked when ReactiveUI router navigates to a view model.
///
/// ViewModel to which the user navigates.
- private void NavigateToViewModel(object viewModel)
+ private void NavigateToViewModel(object? viewModel)
{
if (viewModel == null)
{
@@ -74,4 +74,4 @@ namespace Avalonia.ReactiveUI
Content = viewInstance;
}
}
-}
\ No newline at end of file
+}