繁体   English   中英

查找和操纵具有特定名称的UI控件

[英]Finding and manipulating a UI control with a particular Name

好的,所以我必须使用大量的切换按钮和文本框,因此我以这样的方式命名它们,即在按钮的名称上添加字母“ Q”将给出该按钮对应的文本框的名称。 我已将所有按钮链接到选中事件的相同方法,并使用此命名机制I,希望操纵按钮对应的文本框。

到目前为止,我要做的是以字符串格式生成文本框的名称。 但我不知道如何使用此字符串来操纵文本框。

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”的切换按钮相对应的文本框的名称。

希望我已经解决了这个问题。

在WPF中,一种更好的方法是在ViewModel中公开对象集合,并在UI中显示带有ItemTemplateItemsControlItemTemplate会根据需要动态创建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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM