使用Visual Studio 2012 Express。 我有一个UserControl具有更多属性,可以在设计时从属性窗口设置。 UserControl的名称是“Drum”。 一个属性名为IsSlaveOf,定义如下:
[Category("Custom")]
public Drum IsSlaveOf
{
get
{
return _isSlaveOf;
}
set
{
_isSlaveOf = value;
}
}
如您所见,可以将此属性设置为“Drum”实例的引用。 在我的项目中,有几个UserControl“Drum”实例。 在设计时的属性窗口中,我可以从下拉列表中选择项目中存在的其他实例之一。 到目前为止一切都很好。
“Drum”包含另一个名为IsMasterOf的属性,定义如下:
[Category("Custom")]
public Drum[] IsMasterOf
{
get
{
return _isMasterOf;
}
set
{
_isMasterOf= value;
}
}
请注意,此属性是一个数组,而不是意味着,您应该可以在属性窗口中选择更多实例。 问题是在属性窗口中,您现在将看到“Drum Collection Editor”,其中无法选择“Drum”的现有实例,只能创建新实例。 如果我尝试输入现有实例的名称,我会收到一条消息,告诉我该组件已经存在。 到目前为止,我已经通过在Designer.cs文件中为我的主窗体手动设置属性来解决这个问题,但这显然不是正确的方法。
如何创建此属性,以便可以从属性窗口中选择现有实例?
任何帮助表示赞赏!