Как объединить именованный текстовый блок в C #? - PullRequest
0 голосов
/ 05 апреля 2019

Я не могу понять, как вызвать несколько одинаковых по имени WPF TextBlocks в цикле for.

В 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 # я могу изменить текст в вышеупомянутых текстовых блоках с помощью следующего кода:

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.

Кроме того, текст не будет одинаковым в каждом текстовом блоке, но для простоты я использовал «Образец текста» во всех трех, поскольку это не та область, которая вызывает трудности.

1 Ответ

1 голос
/ 05 апреля 2019

Самым простым способом их итерации, вероятно, было бы поместить их в массив.

// 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";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...