文本块未更新

Text block not Updated

我添加了一个文本块并将数组的第一项绑定到该文本块。我调用了一些 API 来获取该数组的数据。但是在向该数组添加值时不会更新文本块。调用 API 时需要一些时间来获取数据,此时文本块被渲染。因此,在文本块呈现后 UI 未更新。

XAML:

<TextBlock Text="{Binding Path=ItemSource[0], UpdateSourceTrigger 
=PropertyChanged}" />

查看模型:

await this.MyMethod();
this.ItemSource[0] = "Test  After";

为了将多个 TextBlock 绑定到可修改的字符串集合,您可以轻松地将 ItemsControl 与视图模型一起使用,如下所示:

public class ViewModel
{
    public ObservableCollection<string> Items { get; }
        = new ObservableCollection<string>(
            Enumerable
                .Range(1, 20)
                .Select(i => i.ToString())); // or any other initial values
}

MainWindow 构造函数

public MainWindow()
{
    InitializeComponent();
    DataContext = new ViewModel();
}

在 XAML 中使用 ItemsControl:

<ItemsControl ItemsSource="{Binding Items}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

现在像

((ViewModel)DataContext).Items[0] = "Hello";

将替换集合中的第一个字符串,从而更新 ItemsControl。