![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
hexzo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Я пробую применить шаблон элементов для списка. Для элементов некоторых типов шаблон не применяется.
Если судить по тексту ошибки. System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='ListBoxItem' Шаблон игнорируется для типов которые уже являются контейнерами для ItemsControl, если я правильно понял. Для типов определённых пользователем шаблон работает. Вопрос в том как применить шаблон для элементов ListBoxItem? Это сообщение отредактировал(а) hexzo - 8.8.2011, 10:47 |
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Можно унаследоваться от ListBox и переопределить IsItemItsOwnContainerOverride() { return false } и использовать свой контрол вместо ListBox.
Или же вместо дата темплэйта использовать шаблон, ListBox.ItemTemplate при этом задавать не надо:
--------------------
http://gvozdin.ru |
|||
|
||||
hexzo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Gvozdin
Вот это мне больше нравится. И ещё я не понял одного момента. У меня в примере срабатывает шаблон данных для контрола TextBlock. А как он срабатывает если у класса TextBlock нет свойства для шаблона? ![]() |
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Это никак не связано, DataTemplate попадает в ContentControl и он его уже отображает.
TextBlock рассматривается в этом случае просто как любой object, оборачивается в ListBoxItem и там уже отображается шаблон --------------------
http://gvozdin.ru |
|||
|
||||
hexzo |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Gvozdin
Вот это
По сути значит вот это?
Но почему тогда шаблон не срабатывает для
|
||||||||
|
|||||||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Что происходит, DataTemplate служит для задания шаблона ДАННЫХ. Все что не ListBoxItem - это данные и к ним применяется шаблон.
А к ListBoxItem не применяется, даже не смотря на то что потом все оборачивается в ListBoxItem ![]() Как это все проиходит точно - надо уже разбираться ![]() --------------------
http://gvozdin.ru |
|||
|
||||
hexzo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
Gvozdin
Не-не-не, не надо. ![]() Ладно, я просто думал что там всё интуитивно понятно и логично. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |