在我的直覺中,如果我在回圈中系結一個值,我相信 UI 會自動更新。
這是我的測驗代碼:
捆綁
private string _client1 {get; set;}
public string client1
{
get => _client1;
set
{
_client1 = value;
RaisePropertyChanged(nameof(client1));
}
}
功能
public async void UpdateUI()
{
await Task.Run(() =>
{
DispatcherHelper.CheckBeginInvokeOnUI(async () =>
{
for (int i = 0; i < 10; i )
{
_client1 = i.ToString();
RaisePropertyChanged(_client1);
await Task.Delay(200);
}
});
}).ConfigureAwait(false);
}
結果
0在 UI 中顯示且未更改。
預期結果
0 1 2 ... 10
我希望在 UI 中不斷更改該值。這段代碼有什么問題?
uj5u.com熱心網友回復:
如果控制元件系結到client1屬性,那么這就是您應該更改的內容,而不是支持欄位_client1:
client1 = i.ToString();
并且由于 setter for client1already calls RaisePropertyChanged,您不需要在回圈中使用此行:
RaisePropertyChanged(_client1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383555.html
