使用特定名称

时间:2017-09-15 19:18:44

标签: c# wpf

好的,所以我必须使用大量的切换按钮和文本框,所以我这样命名它们,以便在按钮的名称上添加字母“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”的切换按钮对应的文本框的名称。

我希望我把问题弄清楚。

1 个答案:

答案 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
    }
}