![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| AleksPingvin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 20.5.2011 Репутация: нет Всего: нет |
Недавно начал изучать WPF и столкнулся с вот каким вопросом.
У меня есть ListBox в котором я храню Expander-ы с различным содержимом. Как я понимаю, если мне необходимо чтобы данные в экспандерах в разных строках ListBox-ах могли отображаться по разному (разный набор компонентов), то нужно использовать программный селектор шаблонов. Данные у меня берутся с WEB-а в виде XML, который может со временем меняться и как следствие должно измениться и представление данных в том или ином экспандере (может это просто изменятся какие-то данные в компонентах, а может надо будет переключится на другой шаблон). Вопрос — как реализовать правильно такое обновление? |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Это зависит от ситуации и от постановки. У вас заранее известен и фиксирован набор возможных шаблонов? Или в любой момент может появится совсем неожиданные данные для которых шаблон не был предусмотрен? Если да, то каким образом вы хотите обновить ваш софт, чтобы он стал поддерживать новый тип данных? Вопросов сопутствующих по вашей теме много и они появлялись и у других участников форума, но не у каждого есть время уточнять детали. В большинстве случаев происходит так: прочитали тему, не все понятно, пошли к другой теме. Поэтому старрайтесь кратко, но в то же время подробно описывать важные детали, когда задаете вопрос. Жду уточнений по сабжу.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| AleksPingvin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 20.5.2011 Репутация: нет Всего: нет |
Доброе утро!
Набор шаблонов фиксированный и конечный. Например есть xml (с головы взял):
Соответственно такие данные бы отобразились как два Expander в ListBox-е, у которых титл брался бы из атрибута title. Содержимое первого экспандера былобы две таблички - игроки и результаты, а второго только игроки. Разумеется XML оригинальные сложнее и вариаций там побольше.. данные внутри таких табличек могут меняться и более того, со временем некоторые из-них вообще должны исчезать, например если вначале были данные по игрокам и текущие результаты, то когда игра закончилась блок с текущими результатами исчезает и появляется другой. |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 13 Всего: 59 |
Если меняется отображение только отдельных частей одного большого шаблона (в зависимости от каких-либо условий), то достаточно будет использовать конвертеры и управлять визибилити отдельных частей. Также, можно использовать DataTrigger, которым можно устанавливать различные свойства в визуальном дереве шаблона. DataTemplateSelector - это для более сложной логики, когда требуется проанализировать какие-то данные и в зависимости от этого выбрать отдельный шаблон. Еще, никто не запрещает использовать код-бехинд для визуального дерева в шаблоне или использовать свои UserControl. Думаю, это основные средства, которые ты можешь применить для своей задачи.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |