绑定值 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 循环的主要内容,如果未能解决你的问题,请参考以下文章

while,do while,for循环语句

13 while循环和for循环

每个循环到(for循环或while循环)

vue循环语句v-for中元素绑定值问题

vue循环语句v-for中元素绑定值问题

for循环while循环break跳出循环continue结束本次循环exit退出本次脚本