Reputation: 976
I have code that looks similar to the following
ViewModel:
public class VM : ReactiveObject
{
public double _number;
public double Number
{
get { return _number; }
set { this.RaiseAndSetIfChanged(ref _number, value); }
}
}
View:
public sealed partial class MainPage : Page, IViewFor<VM>
{
public MainPage()
{
ViewModel = new VM();
DataContext = ViewModel;
this.InitializeComponent();
this.WhenAnyValue(t => t.ViewModel.Number)
.Subscribe(n => Debug.WriteLine(n));
}
public VM ViewModel
{
get { return (VM)GetValue(ViewModelProperty); }
set { SetValue(ViewModelProperty, value); }
}
public static readonly DependencyProperty ViewModelProperty =
DependencyProperty.Register("ViewModel", typeof(VM), typeof(MainPage), new PropertyMetadata(null));
object IViewFor.ViewModel
{
get { return ViewModel; }
set { ViewModel = (VM)value; }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.Number = ViewModel.Number + 1;
}
}
When I run it I get an ArgumentNullException on the "WhenAnyValue" line.
This seems to follow every example of usage I can find. I'm at a loss here.
Upvotes: 1
Views: 221
Reputation: 74654
Make ViewModel a DependencyProperty and your problems will go away
Upvotes: 1