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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение многоуровневого меню из XML-источника 
V
    Опции темы
Leviafan
  Дата 30.6.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 19.2.2006
Где: г. Екатеринбург

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



Нужен пример неплоского связывания элемента управления Menu с XML-файлом, описывающем всю структуру меню.
PM MAIL WWW ICQ   Вверх
Partizan
Дата 1.7.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Leviafan, что вы понимаете под "неплоским" связыванием?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Leviafan
  Дата 1.7.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 19.2.2006
Где: г. Екатеринбург

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



   XMLFile1.xml
Код

<Root>
   <Node title="File">
      <Node title="Save">
         <Node title="Save as text"/>
         <Node title="Save as project"/>
      </Node>
      <Node title="Quit"/>
   </Node>
   <Node name="About"/>
</Root>
   Вот это - "плоское" (одноуровневое) связывание:
Код

<Window.Resources>
   <XmlDataProvider x:Key="DS1" d:IsDataSource="True" Source=".../XMLFile1.xml"/>
</Window.Resources>
<Menu VerticalAlignment="Top" Height="Auto" ItemsSource="{Binding Source={StaticResource DS1}, XPath=/Root/Node/@title}"/>

PM MAIL WWW ICQ   Вверх
Partizan
Дата 1.7.2009, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Leviafan, ну а "неплоское" что из себя представляет?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Leviafan
  Дата 2.7.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 19.2.2006
Где: г. Екатеринбург

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



А "неплоское" - многоуровневое (рекурсивное), т.е. при связывании с иерархическим источником данных объект впитывает всю иерархическую структуру, а не указанный верхний уровень среза (выборки).
PM MAIL WWW ICQ   Вверх
Partizan
Дата 2.7.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Leviafan, такая задача решается посредством использования HierarchicalDataTemplate. 

Тут есть пример для TreeViewItem: http://forum.vingrad.ru/forum/topic-258482...late/index.html

C MenuItem всё аналогично


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Leviafan
  Дата 2.7.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 19.2.2006
Где: г. Екатеринбург

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



Partizan, суть идеи ясна, однако хотелось бы увидеть полный пример..
PM MAIL WWW ICQ   Вверх
Partizan
Дата 2.7.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Leviafan, вот, накидал:

Код

<Root>
   <Node title="File">
      <Node title="Save">
         <Node title="Save as text"/>
         <Node title="Save as project"/>
      </Node>
      <Node title="Quit"/>
   </Node>
   <Node title="About"/>
</Root>


Код

 <Window.Resources>
            <XmlDataProvider x:Key="DS1" Source="pack://application:,,,/xxx.xml" XPath="/Root/Node"/> <!-- source поменять на необходимый -->
    </Window.Resources>


Код

...
<Grid>
 <Grid.Resources>
            <HierarchicalDataTemplate x:Key="template" ItemsSource="{Binding XPath=Node}">
                        <AccessText Text="{Binding XPath=@title}"/>
            </HierarchicalDataTemplate>
        </Grid.Resources>
        <Menu  VerticalAlignment="Top" Height="Auto" ItemsSource="{Binding Source={StaticResource DS1}}" ItemTemplate="{StaticResource template}"/>
</Grid>
...



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Leviafan
  Дата 2.7.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 19.2.2006
Где: г. Екатеринбург

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



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


 




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


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

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