我的代码与以下内容类似
视图模型:
public class VM : ReactiveObject
{
public double _number;
public double Number
{
get { return _number; }
set { this.RaiseAndSetIfChanged(ref _number, value); }
}
}
查看:
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;
}
}
当我运行它时,我在“WhenAnyValue”行上得到一个ArgumentNullException。
这似乎跟随我能找到的每个用法示例。我在这里不知所措。
答案 0 :(得分:1)
使ViewModel成为DependencyProperty,你的问题就会消失