我通过nuget将最新的ReactiveUI(5.0.2)下载到基于.NET 4.5的项目中。
我创建了具有一个属性的简单视图模型类:
using System;
using System.Threading;
using System.Windows;
using ReactiveUI.Xaml;
namespace ReactiveUI.Study.ViewModels
{
public class ShellViewModel : ReactiveObject
{
#region Properties
private string _login;
public string Login
{
get
{
return _login;
}
set
{
this.RaiseAndSetIfChanged(x => x.Login, value);
}
}
}
}
当我尝试编译项目时,出现异常
Cannot convert lambda expression to type 'ref string' because it is not a delegate type
我刚刚开始学习,我不确定这个问题的根源在哪里,因为我使用的是
https://github.com/reactiveui/ReactiveUI.Samples/blob/master/ReactiveUI_4Only.Samples.sln
并且所有项目均基于.NET 4.0,并且还使用较旧版本的ReactiveUI。
谢谢
最佳答案
更改
this.RaiseAndSetIfChanged(x => x.Login, value);
至
this.RaiseAndSetIfChanged(ref _login, value);
现在,这是根据发行说明声明属性的唯一方法:
https://github.com/reactiveui/ReactiveUI/blob/master/docs/migrating-from-rxui4.md