2

我有一个关于在 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;
}

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

4

2 回答 2

5

如果您想遍历该网格中的按钮,则可以为网格分配名称,例如buttonsGrid。比你可以迭代它的 Children 属性

foreach (var childButton in buttonsGrid.Children.OfType<Button>())
// do smth
于 2012-06-14T14:10:50.797 回答
3

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


但是您可以通过运行时生成的名称进行访问控制:

TextBox textbox = grid.FindName("button" + i) as TextBox;
于 2012-06-14T14:07:31.947 回答