簡體   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