Я работаю над пользовательским элементом управления меню, частично как учебное упражнение, и у меня возникают проблемы с поддержкой IntelliSense в Visual Studio для него в режиме разметки.
Традиционное меню ASP.NET позволяет разместитьпроизвольная глубина <asp:MenuItem/>
элементов под элементом <Items>...</Items>
.У меня такое же поведение для моего меню.
У меня, к сожалению, нет.VS настаивает на пустом теге:
<hn:AwesomeMenu runat="server" ID="menu">
<Items />
</hn:AwesomeMenu>
Я использовал Reflector для поиска в элементе управления ASP.NET Menu и связанных с ним классах (MenuItem, MenuItemCollection и soforth) и обеспечил, чтобы мои классы имели одинаковые интерфейсыи атрибуты, так что я немного озадачен тем, где я иду не так.Окурки моих классов пока следующие:
AwesomeMenu.cs
public class AwesomeMenu
: HierarchicalDataBoundControl,
IPostBackEventHandler,
INamingContainer
{
[PersistenceMode(PersistenceMode.InnerProperty),
MergableProperty(false),
DefaultValue(default(string)),
Browsable(false)]
public AwesomeCollection Items
{
get { ... }
}
}
AwesomeCollection.cs
public class AwesomeCollection
: ICollection,
IEnumerable,
IStateManager
{ ... }
AwesomeItem.cs
[ParseChildren(true, "Children")]
public class AwesomeItem
: IStateManager,
ICloneable
{
[PersistenceMode(PersistenceMode.InnerDefaultProperty),
MergableProperty(false)]
public AwesomeCollection Children
{
get { ... }
}
public AwesomeItem Parent
{
get { ... }
}
}
Реализации интерфейса для краткости опущены.Любая помощь будет оценена.