例如,我的 userControl 有 CheckBox ,名为 IsGreatCoder ,而userControl嵌入主页(父页面)。
我通常通过我必须手动编写的公共属性公开来获得访问主页中的IsGreatCoder.Checked 值(比如说“IsAGreatCoder” “)。
如果UserControl在主页中包含为“ userControl1 ”,那么我会将其作为“userControl1.IsAGreatCoder”访问。
但是,我想知道是否有任何方式声明UserControl使得添加到它的所有UI控件都被声明为公共,这样我就可以访问主页面中的实际控件(父级)
基本上我希望能够做类似的事情 的 userControl1.IsGreatCoder.Checked 而不是必须实现一个属性。
我想这样做的原因是我希望能够访问更多的复选框属性,将每个属性作为公共属性实现会很痛苦。
答案 0 :(得分:2)
按照设计,这是不可能的(将对象的私有名称自动设置为公共)。
为了使它更容易一些,您可以进入设计器视图(如果使用Web应用程序项目)并将每个控件声明编辑为公共,但每当您进行UI更改时它都会被覆盖(它会自动生成)毕竟,所以最好只是:
public bool IsAGreatCoder
{
get { return IsGreatCoder.Checked; }
}
请注意,您需要将属性命名与控件名称区分开来。