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