编辑用户控件的多个实例

本文关键字:实例 用户 控件 编辑 | 更新日期: 2023-09-27 18:09:44

我是c#新手,已经创建了多个User Control实例

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个用户控件。

我发现有点难以解释我自己。如果您需要任何说明,请告诉我,我会尽力解释的。

编辑用户控件的多个实例

您可以使用如下索引访问集合中的特定元素:

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";