繁体   English   中英

ReactiveUI:属性未更新

[英]ReactiveUI: Property not updating

不知道我在做什么错:

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

使用AT = "Something"在ViewModel上进行设置,将调用Raise并首先设置View。 但是,由于不断调用AT(每秒至少更新一次),因此在初始设置(aT的原始值)之后不会更新

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

似乎可以工作一段时间的是:

        set
        {
            aT = value;
            this.RaisePropertyChanged();
        }

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

编辑:

此属性在异步事件处理程序中更改。 每当我断点时,该属性都会更改。 大约每秒发生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
        }

对于每个名称,如果新值不同, RaiseAndSetIfChanged设置通过引用传递的字段

调用此字段之前,您需要设置字段值,因此永远不会有任何更改。 删除它,它将起作用:

private string at;

public string AT 
{
    get { return at; }
    set { this.RaiseAndSetIfChanged(ref at, value); }
}

该文档包含一些示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM