绑定值 while 或 for 循环
Posted
技术标签:
【中文标题】绑定值 while 或 for 循环【英文标题】:Binding values while or for loop 【发布时间】:2022-01-20 00:36:30 【问题描述】:在我的直觉中,如果我在循环中绑定一个值,我相信 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 中不断更改该值。这段代码有什么问题?
【问题讨论】:
【参考方案1】:如果控件绑定到client1
属性,那么这就是您应该更改的内容,而不是支持字段_client1
:
client1 = i.ToString();
由于client1
的设置器已经调用了RaisePropertyChanged
,所以循环中不需要这一行:
RaisePropertyChanged(_client1);
【讨论】:
冬青......它运作良好。很抱歉打扰您。 @h1d3r00t 完全没有问题以上是关于绑定值 while 或 for 循环的主要内容,如果未能解决你的问题,请参考以下文章