在aspx上获取ascx

Tim*_*Tim 1 c# asp.net user-controls

我有一个UserControl,由一个父和子UserControls组成,显示在aspx页面上.我需要从子控件获取Parent UserControls的实例.Parent有一组嵌套的.net控件,在这些嵌套控件中显示子UserControls,如果我从子UserControls使用它

MyControl _myControl = (MyControl)this.Parent.Parent.Parent.Parent.FindControl("MyControl");
Run Code Online (Sandbox Code Playgroud)

where(this)=子控件和(Parent.Parent.Parent.Parent)将我带回到真正的父级.

这会让我在那里,但似乎有一个更好的方法.有什么建议?

Jef*_*nal 5

一个ascx人不应该对其父母一无所知:这表明它与其他课程的联系太紧密了.他们可能也是一个班级.

另一种方法是遵循Demeter法则:弄清楚this(你的用户控制)需要什么MyControl,使它成为一个属性,并让你的aspx提供它而不是要求它.