如何在C#中串联已命名的文本块?

时间:2019-04-05 17:51:43

标签: c# wpf

我不知道如何在for循环中调用几个类似名称的WPF TextBlock。

在WPF中,我有几个TextBlocks分别位于网格单元内:

<TextBlock Name="Banner0" />
<TextBlock Name="Banner1" />
<TextBlock Name="Banner2" />

例如,这三个在Grid.Row =“ 0” Grid.Column =“ 0”,Grid.Row =“ 0” Grid.Column =“ 1”,Grid.Row =“ 0” Grid.Column =分别为“ 2”。

在C#中,我可以使用以下代码更改上述TextBlocks中的文本:

Banner0.Text = "Sample Text";
Banner1.Text = "Sample Text";
Banner2.Text = "Sample Text";

但是我想做什么,但是不知道该怎么做就是用这种方式更改它。

for (int i = 0; i < 3; i++) 
   { 
       Banneri.Text = "Sample Text"; 
   }

我理解为什么我不能做Banneri,但是却不知道如何在for循环中实现这个概念。

每个TextBlock中的文本也不相同,但是为简单起见,我在所有三个文本块中均使用了“示例文本”,因为这不是造成麻烦的区域。

1 个答案:

答案 0 :(得分:1)

最简单的方法是将它们放入数组中。

// put them together
TextBlock[] banners = new [] {Banner0, Banner1, Banner2};

// iterate like this
for(var i = 0; i < banners.Length; i++){
    banners[i].Text = "Sample Text";
}