好的,所以我必须使用大量的切换按钮和文本框,所以我这样命名它们,以便在按钮的名称上添加字母“Q”将给出按钮对应的文本框的名称。我已将所有按钮链接到已检查事件上的相同方法,并使用此命名机制我希望操作对应按钮的文本框。
到目前为止我所做的是,以字符串格式生成文本框的名称。但我不知道如何使用此字符串来操作文本框。
private void OnbuttonClick(object sender, RoutedEventArgs e)
{
ToggleButton tb = (ToggleButton)sender;
if(tb.IsChecked==true)
{
string tbnam = ((ToggleButton)sender).Name;
string name2 = tbnam + "Q";
?????? (what happens from this point onward)
}
}
“name2”是与名称“tbnam”的切换按钮对应的文本框的名称。
我希望我把问题弄清楚。
答案 0 :(得分:1)
在WPF中,更好的方法是在viewmodel中公开一组对象,并在UI中显示ItemsControl
ItemTemplate
,动态创建尽可能多的迭代次数根据需要ToggleButton
/ TextBox
对。如果你有兴趣,我很乐意去研究如何做到这一点。
但是现在,您可以使用FindName(string)
方法使代码正常工作:
private void Button_Click(object sender, RoutedEventArgs e)
{
ToggleButton tb = (ToggleButton)sender;
if (tb.IsChecked == true)
{
string name2 = tb.Name + "Q";
TextBox tbox = FindName(name2) as TextBox;
// Check to see if tbox is null, do stuff with it
}
}