将自定义控件添加到另一个类的stackpanel

时间:2012-08-14 01:48:39

标签: c# wpf vb.net class user-controls

您好,感谢您的帮助。

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

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

我似乎无法让这个工作,因为它是在一个不同的类。如何从另一个控件向stackpanel添加控件?我无法弄清楚如何使用直播。

谢谢!

2 个答案:

答案 0 :(得分:1)

stackpanel.Children.Add(new Control());

答案 1 :(得分:0)

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

MyUserControl mycontrol = new MyUserControl(this);

在您的用户控件中存储引用:

Stackpanel parent;

public MyUserControl(Stackpanel parent){
  this.parent = parent;
}

然后你可以调用方法来创建这样的控件:

parent.myCreateMethod();

我希望能够提供足够的洞察力来使示例适应您的需求。

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