循环变量名称

时间:2012-06-14 14:04:48

标签: c# .net wpf xaml

我有一个关于在WPF中循环变量名的具体问题。

XAML代码如下:

<Grid>
    <Button name="button1" Visibility="Collapsed" />
    <Button name="button2" Visibility="Collapsed" />
    <Button name="button3" Visibility="Collapsed" />
    <Button name="button4" Visibility="Collapsed" />
</Grid>

我想知道是否可以将变量名称作为for循环使用以下数字循环:

private DateTime time = DateTime.Now;
private CultureInfo ci = new CultureInfo("en-GB");
for(int i = 0; i <= 4; i++)
{
    /* (*Plus i*): A example as what I want/like to do */
    string Year = String.Format(ci, "{0:yyyy}", Time.addDays(i-1));
    button(*Plus i*).Visibility = Visibility.Visible;
    button(*Plus i*).Name = Year;
}

甚至可以添加一个数字来达到某个变量吗? 请帮帮我,谢谢你的回复......

2 个答案:

答案 0 :(得分:5)

如果要迭代该网格中的按钮,可以为网格指定名称,例如 buttonsGrid 。你可以迭代它的儿童财产

foreach (var childButton in buttonsGrid.Children.OfType<Button>())
// do smth

答案 1 :(得分:3)

您无法按运行时生成的名称访问变量。


但您可以按运行时生成的名称访问控件:

TextBox textbox = grid.FindName("button" + i) as TextBox;