我对 C# 很陌生,并且遇到了以下问题:我的程序在运行时创建了一个对象字典(大小未知),数据不足。对于每个对象,我想创建一个 StackPanel 元素,里面有两个 TextBox,我这样做如下:
foreach (string name in a.Keys){
StackPanel SP = new StackPanel();
TextBox TB1 = new TextBox();
TextBox TB2 = new TextBox();
SP.Children.Add(TB1);
SP.Children.Add(TB2);
// ... Content to TextBoxes
TB2.Name = name;
}
现在,我在程序的其他地方放置了一个复选框,如果上面每个 StackPanel 中的第二个文本框可见,它应该切换,例如,通过以下方式:
void MainCheckBox_Clicked(object sender, RoutedEventArgs e){
if (MainCheckBox.IsChecked == true){XXX.Height = 300;}
else {XXX.Height = 0;}
}
这里的 XXX 应该是对名为“TB2”的 TextBox 的引用。但是使用列表中的任何“名称”(应该对应于 TB2 的名称)都不起作用,编译器会说“名称”不存在,即使我从字面上使用列表中的具体名称,例如 ' John'(假设他在列表中)。
我假设我在概念上做错了什么,那么根据数据创建这些东西的更好方法是什么?
提前致谢!