如何将for()循环索引标识符添加到标签名称?

时间:2015-01-27 16:32:55

标签: c# wpf oop wpf-controls

我正在尝试从列表中的对象向WPF中的标签动态添加内容。 我可以通过硬编码索引号来添加Object中的内容:

// assign forecast values to 5 user interface labels

Forecast fc1 = day.Weather.getForecastInList(0);
day1Label.Content = fc1.Day;
day1ConditionLabel.Content = fc1.ForecastCondition;
day1TempLabel.Content = formatHiLow(fc1.TemperatureHigh, fc1.TemperatureLow);

Forecast fc2 = day.Weather.getForecastInList(1);
day2Label.Content = fc2.Day;
day2ConditionLabel.Content = fc2.ForecastCondition;
day2TempLabel.Content = formatHiLow(fc2.TemperatureHigh, fc2.TemperatureLow);

etc...

但是我必须为5个标签中的每一个重复很多分配代码。

我试图使用for()循环,它可以很好地从列表中获取每个对象但不允许我重命名标记,例如。

// assign forecast values to 5 user interface labels
for (int i = 0; i < 5; i++ )
{
    Forecast fc+(i+1) = day.Weather.getForecastInList(i);
    day+(i+1)+Label.Content = fc+(i+1)+.Day;
}

如何使用WPF循环中的索引动态识别for()个标签?

1 个答案:

答案 0 :(得分:0)

我不推荐这个但是回答你的问题,有可能:

创建一个包含所有标签的列表:

List<Label> dayLabels = new List<Label>();
dayLabels.Add(day1Label);
dayLabels.Add(day2Label);
//and so on...

遍历所有标签:

for (int i = 0; i < 5; i++ )
{
    Forecast fc = day.Weather.getForecastInList(i);
    dayLabels.ElementAt(i).Content = fc.Day;
}