Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF: обновление представления данных 
:(
    Опции темы
AleksPingvin
Дата 20.5.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



Недавно начал изучать WPF и столкнулся с вот каким вопросом.
У меня есть ListBox в котором я храню Expander-ы с различным содержимом. Как я понимаю, если мне необходимо чтобы данные в экспандерах в разных строках ListBox-ах могли отображаться по разному (разный набор компонентов), то нужно использовать программный селектор шаблонов. Данные у меня берутся с WEB-а в виде XML, который может со временем меняться и как следствие должно измениться и представление данных в том или ином экспандере (может это просто изменятся какие-то данные в компонентах, а может надо будет переключится на другой шаблон). Вопрос — как реализовать правильно такое обновление?
PM MAIL   Вверх
-Mikle-
Дата 21.5.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Это зависит от ситуации и от постановки. У вас заранее известен и фиксирован набор возможных шаблонов? Или в любой момент может появится совсем неожиданные данные для которых шаблон не был предусмотрен? Если да, то каким образом вы хотите обновить ваш софт, чтобы он стал поддерживать новый тип данных? Вопросов сопутствующих по вашей теме много и они появлялись и у других участников форума, но не у каждого есть время уточнять детали. В большинстве случаев происходит так: прочитали тему, не все понятно, пошли к другой теме. Поэтому старрайтесь кратко, но в то же время подробно описывать важные детали, когда задаете вопрос. Жду уточнений по сабжу.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
AleksPingvin
Дата 22.5.2011, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



Доброе утро!
Набор шаблонов фиксированный и конечный. 
Например есть xml (с головы взял):
Код

<games>
  <game title="Game 1" timeBegin="9.00" type="0">
   <players>
      <player id="1" name="Smith"/>
      <player id="2" name="John"/>
   </players>
   <result>
      <round id="0" winer="1" prize="100"/>
      <round id="2" winer="2" prize="10"/>
   </result>
  </game>
  <game title="Game 2" timeBegin="11.20" type="2">
  <players>
      <player id="1" name="Sara"/>
      <player id="2" name="Mika"/>
   </players>
  </game>
</games>

Соответственно такие данные бы отобразились как два Expander в ListBox-е, у которых титл брался бы из атрибута title.
Содержимое первого экспандера былобы две таблички - игроки и результаты, а второго только игроки.

Разумеется XML оригинальные сложнее и вариаций там побольше.. данные внутри таких табличек могут меняться и более того, со временем
некоторые из-них вообще должны исчезать, например если вначале были данные по игрокам и текущие результаты, то когда игра закончилась
блок с текущими результатами исчезает и появляется другой.
PM MAIL   Вверх
-Mikle-
Дата 22.5.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Если меняется отображение только отдельных частей одного большого шаблона (в зависимости от каких-либо условий), то достаточно будет использовать конвертеры и управлять визибилити отдельных частей. Также, можно использовать DataTrigger, которым можно устанавливать различные свойства в визуальном дереве шаблона. DataTemplateSelector - это для более сложной логики, когда требуется проанализировать какие-то данные и в зависимости от этого выбрать отдельный шаблон. Еще, никто не запрещает использовать код-бехинд для визуального дерева в шаблоне или использовать свои UserControl. Думаю, это основные средства, которые ты можешь применить для своей задачи.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.