Чтобы связать несколько TextBlocks с изменяемой коллекцией строк, вы можете легко использовать 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.