2

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

谢谢

4

1 回答 1

10

改变

this.RaiseAndSetIfChanged(x => x.Login, value);

this.RaiseAndSetIfChanged(ref _login, value);

这是现在根据发行说明声明属性的唯一方法:

https://github.com/reactiveui/ReactiveUI/blob/master/docs/migrating-from-rxui4.md

于 2013-07-22T19:11:43.037 回答