繁体   English   中英

Caliburn.Micro不更新UI

[英]Caliburn.Micro not updating UI

我正在尝试使用caliburn micro和wpf构建简单的实用程序。 这个简单的代码:

    public bool CanTransfer
    {
        get { return this.canTransfer; }
        set
        {
            this.NotifyOfPropertyChange(() => this.CanTransfer);
            this.canTransfer = value;
        }
    }

    public void Transfer()
    {
        Task.Factory.StartNew(this.Process);
    }

    private void Process()
    {
        this.CanTransfer = false;
        Thread.Sleep(5000);
        this.CanTransfer = true;
    }

以下- Transfer按钮是否保持禁用状态,但是我希望它在5秒钟后启用,我在做什么错呢?

CanTransfer setter方法中交换这些行-现在,您首先说一些更改,而实际上没有更改,然后更改它:

public bool CanTransfer
{
    get { return this.canTransfer; }
    set
    {
        this.canTransfer = value;
        this.NotifyOfPropertyChange(() => this.CanTransfer);
    }
}

我通常使用像ChangeAndNotify<T>这样的方法(唯一的麻烦是字段的声明),代码可以在这里看到:

private bool _canTransfer;
public string CanTransfer
{
  get { return _canTransfer; }
  set 
  { 
    PropertyChanged.ChangeAndNotify(ref _canTransfer, value, () => CanTransfer); 
  }
}

您缺少通知:

this.NotifyOfPropertyChange(() => this.CanTransfer);

我希望语法正确,我是从内存中键入的。 这基本上告诉WPF:“嘿,有些变化,去看看新值”。

暂无
暂无

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

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