У меня есть список пользовательских "страниц" в моем приложении. Каждая страница представляет свой вид интерфейса. У них есть несколько простых свойств, таких как заголовок строки и значок, но у них также есть ряд сложных свойств, состоящих из элементов управления для вставки в основную панель инструментов, основной области содержимого, пользовательских панелей строки состояния и т. Д. Тип страницы происходит от FrameworkElement
, чтобы привязка данных работала правильно внутри XAML каждой страницы. Пока все, что я описал, работает отлично .
Проблема возникает, когда я пытаюсь быстро выкинуть список всех страниц. У меня есть ItemsControl
, который я привязал к списку активных страниц, и DataTemplate
, назначенный для ItemTemplate
, состоящий только из метки, привязанной к свойству Title
страницы (как было отмечено, это просто простая строка). Однако, когда я запускаю его, в списке ничего не отображается, и я получаю это в выводе ошибки:
Ошибка System.Windows.Data: 25: ItemTemplate и ItemTemplateSelector недопустимы для элемента .; Тип = 'WelcomePage'
Если я изменяю базовый тип на что угодно, кроме FrameworkElement
, шаблон работает, но привязка данных на каждой странице ужасно нарушается (сбой привязки к элементам через ElementName
, несмотря на то, что оба задействованных элемента управления являются дочерними для общего FrameworkElement
, который определен в XAML страницы).
Кто-нибудь знает способ заставить DataTemplate применять к производному от FrameworkElement типу или получить привязку данных для работы в файле XAML с корнем не-FrameworkElement?