C# 从另一个类向stackpanel添加自定义控件

C# 从另一个类向stackpanel添加自定义控件,c#,wpf,vb.net,class,user-controls,C#,Wpf,Vb.net,Class,User Controls,你好,谢谢你的帮助 我有一个名为stackpanel的stackpanel窗口,我在xaml中添加了一些自定义控件,效果非常好 现在,我的程序在stackpanel中动态创建一些用户控件(带有按钮)。我希望能够单击用户控件内的按钮,并将另一个控件动态添加到stackpanel 我似乎无法让它工作,因为它在不同的班级。如何从另一个控件向stackpanel添加控件?我也不知道如何使用directcast 谢谢大家! stackpanel需要提供一个方法(在本例中称之为myCreateMethod)

你好,谢谢你的帮助

我有一个名为stackpanel的stackpanel窗口,我在xaml中添加了一些自定义控件,效果非常好

现在,我的程序在stackpanel中动态创建一些用户控件(带有按钮)。我希望能够单击用户控件内的按钮,并将另一个控件动态添加到stackpanel

我似乎无法让它工作,因为它在不同的班级。如何从另一个控件向stackpanel添加控件?我也不知道如何使用directcast


谢谢大家!

stackpanel需要提供一个方法(在本例中称之为myCreateMethod)来创建控件,并且该方法必须可由用户控件访问。创建用户控件时,向stackpanel传递一个句柄,例如

MyUserControl mycontrol = new MyUserControl(this);
在用户控件内存储引用:

Stackpanel parent;

public MyUserControl(Stackpanel parent){
  this.parent = parent;
}
然后可以调用该方法来创建控件,如下所示:

parent.myCreateMethod();
我希望这能提供足够的洞察力,使示例适应您的需要

编辑:显然可以将新控件的详细信息作为参数传递给myCreateMethod()。或者在用户控件中创建新控件,将其沿着stackpanel传递,myCreateMethod()仅显示它。

stackpanel.Children.Add(新控件())