【发布时间】:2013-10-09 21:58:16
【问题描述】:
我有一个包含许多面板控件的用户控件。用户控件具有根据用户控件中包含的一些变量的值设置每个面板的可见性的逻辑。
我想通过添加以下枚举来增强此功能:
public enum Visibility
{
Default,
Always,
Never
}
其中Default 将使用当前逻辑设置面板的可见性,但Always 将(显然)使面板始终可见,而Never 将始终隐藏面板。
我还想添加一个名为 PanelVisiblity 的“嵌套”设计时属性,开发人员可以扩展它,查看下面列出的面板名称,并允许他们从 Visibility 枚举中分配一个值每个人。
如果我添加这样的属性:
public partial class MyControl : UserControl
{
public Visibility ActivePanel { get; set; }
public Visibility CodePanel { get; set; }
}
ActivePanel 和 CodePanel 属性出现在 Visual Studio 的“属性”窗口中,我可以将它们设置为枚举中的三个值之一。但是,当我重构代码以尝试创建这样的嵌套属性时:
public partial class MyControl : UserControl
{
public class PanelVisibility
{
public enum Visibility
{
Default,
Always,
Never
}
public Visibility ActivePanel { get; set; }
public Visibility CodePanel { get; set; }
}
}
我没有得到一个可扩展的PanelVisiblity 属性,我得到一个禁用的Visiblity 属性,其中的值是类的命名空间加上“PanelVisibility”。
我已经在 Google 上搜索了该搜索的多种措辞,但找不到与我正在寻找的内容相似的任何内容。
任何方向都将不胜感激。
【问题讨论】:
标签: c# winforms visual-studio-2010 c#-4.0 properties