ReactiveUI:属性未更新

Tyr*_*ess 0 c# reactiveui

不确定我做错了什么:

       private at = "0";
       public string AT
        {
            get
            {
                return aT;
            }
            set
            {
                aT = value;
                this.RaiseAndSetIfChanged(ref aT, value);
            }
        }
Run Code Online (Sandbox Code Playgroud)

使用ViewModel进行设置AT = "Something",调用Raise并最初设置View.但是,当AT被连续调用(每秒至少一次更新)时,在初始设置(aT的原始值)之后不会更新

this.WhenAnyValue(x => x.ViewModel.AT).Subscribe(x => Debug.WriteLine("Change in AT:" + x)); // using this to debug
Run Code Online (Sandbox Code Playgroud)

似乎有效的一段时间是这样的:

        set
        {
            aT = value;
            this.RaisePropertyChanged();
        }
Run Code Online (Sandbox Code Playgroud)

但是,在成功获得一个值(除了初始设置)之后,它崩溃了!我究竟做错了什么?

编辑:

在异步事件处理程序中更改此属性.在断点时,每次都会更改属性.这种情况大约每秒1次:

private async void ValueChanged(Something sender, SomeArgs args)
        {
            //Computation code here
            AT= string.Format("{0:0.0####}", ATOrigin);
            // Property is set - I checked
           // More code here
        }
Run Code Online (Sandbox Code Playgroud)

Cha*_*ger 5

根据名称,如果新值不同,RaiseAndSetIfChanged设置通过引用传递的字段.

您在调用之前设置了字段值,因此永远不会有任何更改.删除它,它将工作:

private string at;

public string AT 
{
    get { return at; }
    set { this.RaiseAndSetIfChanged(ref at, value); }
}
Run Code Online (Sandbox Code Playgroud)

该文档有一些例子.