Я создаю настраиваемый элемент управления WPF, производный от TabControl. В ControlTemplate я использую ItemsControl для отображения списка, который привязывается из шаблона (наблюдаемая коллекция типа FileMenuItem). Во время выполнения программы в окне вывода появляется следующая ошибка:
ItemTemplate и ItemTemplateSelector игнорируются для элементов, уже принадлежащих типу контейнера ItemsControl; Тип = 'FileMenuItem'
Тип FileMenuItem является производным от MenuItem. Если я изменю базовый класс на DependencyObject, код действительно запустится, и шаблон будет применен (так что это вариант). Я погуглил об ошибке и ничего не нашел, сталкивался ли кто-нибудь с этим при разработке пользовательских элементов управления? Несмотря на то, что у меня есть обходной путь, я хотел бы понять, что происходит, и я думаю, что использование MenuItem в качестве базового класса - более чистая реализация.
Я могу опубликовать больше кода, если это поможет. Спасибо!
IsItemItsOwnContainerOverride
для возврата false, что означает, что DataTemplate не будет пропущен из-за проблемы, которую объяснил Джон. 08.10.2014