Применить DataTemplate к типу, производному от FrameworkElement - PullRequest
4 голосов
/ 14 января 2010

У меня есть список пользовательских "страниц" в моем приложении. Каждая страница представляет свой вид интерфейса. У них есть несколько простых свойств, таких как заголовок строки и значок, но у них также есть ряд сложных свойств, состоящих из элементов управления для вставки в основную панель инструментов, основной области содержимого, пользовательских панелей строки состояния и т. Д. Тип страницы происходит от FrameworkElement, чтобы привязка данных работала правильно внутри XAML каждой страницы. Пока все, что я описал, работает отлично .

Проблема возникает, когда я пытаюсь быстро выкинуть список всех страниц. У меня есть ItemsControl, который я привязал к списку активных страниц, и DataTemplate, назначенный для ItemTemplate, состоящий только из метки, привязанной к свойству Title страницы (как было отмечено, это просто простая строка). Однако, когда я запускаю его, в списке ничего не отображается, и я получаю это в выводе ошибки:

Ошибка System.Windows.Data: 25: ItemTemplate и ItemTemplateSelector недопустимы для элемента .; Тип = 'WelcomePage'

Если я изменяю базовый тип на что угодно, кроме FrameworkElement, шаблон работает, но привязка данных на каждой странице ужасно нарушается (сбой привязки к элементам через ElementName, несмотря на то, что оба задействованных элемента управления являются дочерними для общего FrameworkElement, который определен в XAML страницы).

Кто-нибудь знает способ заставить DataTemplate применять к производному от FrameworkElement типу или получить привязку данных для работы в файле XAML с корнем не-FrameworkElement?

1 Ответ

0 голосов
/ 18 августа 2010

Не то чтобы это, вероятно, принесло вам пользу сейчас, но у меня была та же проблема при похожих обстоятельствах Я просто заменил элемент управления на listview. Как использование listbox вызвало у меня дополнительные ошибки привязки.

...