| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > шаблон для ListBoxItem |
| Автор: hexzo 8.8.2011, 10:46 | ||
Я пробую применить шаблон элементов для списка. Для элементов некоторых типов шаблон не применяется.
Если судить по тексту ошибки. System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='ListBoxItem' Шаблон игнорируется для типов которые уже являются контейнерами для ItemsControl, если я правильно понял. Для типов определённых пользователем шаблон работает. Вопрос в том как применить шаблон для элементов ListBoxItem? |
| Автор: Gvozdin 9.8.2011, 14:32 | ||
| Можно унаследоваться от ListBox и переопределить IsItemItsOwnContainerOverride() { return false } и использовать свой контрол вместо ListBox. Или же вместо дата темплэйта использовать шаблон, ListBox.ItemTemplate при этом задавать не надо:
|
| Автор: hexzo 10.8.2011, 08:11 | ||
Gvozdin
Вот это мне больше нравится. И ещё я не понял одного момента. У меня в примере срабатывает шаблон данных для контрола TextBlock. А как он срабатывает если у класса TextBlock нет свойства для шаблона? |
| Автор: Gvozdin 10.8.2011, 08:48 |
| Это никак не связано, DataTemplate попадает в ContentControl и он его уже отображает. TextBlock рассматривается в этом случае просто как любой object, оборачивается в ListBoxItem и там уже отображается шаблон |
| Автор: hexzo 10.8.2011, 09:24 | ||||||||
Gvozdin
Вот это
По сути значит вот это?
Но почему тогда шаблон не срабатывает для
|
| Автор: Gvozdin 11.8.2011, 10:10 |
| Что происходит, DataTemplate служит для задания шаблона ДАННЫХ. Все что не ListBoxItem - это данные и к ним применяется шаблон. А к ListBoxItem не применяется, даже не смотря на то что потом все оборачивается в ListBoxItem Как это все проиходит точно - надо уже разбираться |
| Автор: hexzo 11.8.2011, 12:05 | ||
Gvozdin
Не-не-не, не надо. Ладно, я просто думал что там всё интуитивно понятно и логично. |