我通过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

10-07 12:55