[英]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.