我有一个关于在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;
}
甚至可以添加一个数字来达到某个变量吗? 请帮帮我,谢谢你的回复......
答案 0 :(得分:5)
如果要迭代该网格中的按钮,可以为网格指定名称,例如 buttonsGrid 。你可以迭代它的儿童财产
foreach (var childButton in buttonsGrid.Children.OfType<Button>())
// do smth
答案 1 :(得分:3)
您无法按运行时生成的名称访问变量。
但您可以按运行时生成的名称访问控件:
TextBox textbox = grid.FindName("button" + i) as TextBox;