我是C#的半新手,并且已经制作了多个用户控件实例
StackPanel StkPnl = new StackPanel();
StkPnl = SP; //SP being the static objRef of the StackPanel in the MainWindow
for (int i = 0; i < 5; i++)
{
UserControl UsrCtrl = new UserControl();
UsrCtrl = new UserControl1();
UserControl1.TB.Text = "Text:"+i; //TB being the static objRef of the textblock that is in the user control
UsrCtrl.Name = "UsrCtrl" + i;
StkPnl.Children.Add(UsrCtrl);
}
我想要做的是能够独立调用每个用户控件并编辑特定的textblock.text。例如:编辑UsrCtrl3的文本块而不改变创建的其他4个用户控件。
我发现自己很难解释。如果您需要任何澄清,请尽我所知,尽力解释。
答案 0 :(得分:1)
您可以使用以下索引访问集合中的特定元素:
StkPnl.Children[3].TB.Text = "Some Text"; // edit fourth user control (UsrCtrl3)
或者您可以使用LINQ搜索名称。
方法SingleOrDefault()
最多只能匹配一次。如果未找到匹配项,则返回null
。
var thirdUserControl = StkPnl.Children.SingleOrDefault(x => x.Name == "UsrCtrl3");
if (thirdUserControl != null)
thirdUserControl.TB.Text = "Some Text";