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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Присоединение объекта к элементу дерева TreeView, Нужно присоединить панель к элементу дер 
V
    Опции темы
Vanes
Дата 13.1.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 10.1.2009
Где: Новосибирск

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



Всем, привет.
Подскажите, пожалуйста. Мне нужно сделать дерево, в котором у элементов дерева по щелчку открывалась бы дополнительная панель с элементами, типа как в низу. Как это можно сделать?

 - item1
       subitem
       _____________________
       |                                        |
       |                                        |
       |                                        |
       ---------------------------------- 
       subitem
       _____________________
       |                                        |
       |                                        |
       |                                        |
       ----------------------------------
 - item2
       subitem
       _____________________
       |                                        |
       |                                        |
       |                                        |
       ---------------------------------- 
       subitem
       _____________________
       |                                        |
       |                                        |
       |                                        |
       ----------------------------------

Забыл. Данные дерева читаются из базы. Дерево формируется динамически при запуске программы

Это сообщение отредактировал(а) Vanes - 13.1.2009, 09:25
PM MAIL   Вверх
Adm0r
Дата 13.1.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Извините, не совсем понял вопрос. У вас есть дерево. Есть елементы корневого уровня. При щелчке на них они должны "раскрываться" и показывать какие-то дочерние елементы? Это просто, в WPF child'ом TreeView может быть не только TreeViewItem, а и Button, ComboBox и т.д. Вы просто добавляете детей не заботясь о том какого они типа(конечно необходимо еще и подправить стили чтобы они выглядели нормально). 
или непосредственно у чайлда должна быть кнопка при нажатии на которую показывалась бы доп панелька, а в ней елементы? тогда поставьте чайлдом Expander, в свойство Header добавьте заголовок %item1% а в тело - необходимые елементы.
PM MAIL   Вверх
Vanes
Дата 13.1.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 10.1.2009
Где: Новосибирск

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



Цитата

непосредственно у чайлда должна быть кнопка при нажатии на которую показывалась бы доп панелька, а в ней елементы


Да, у дочернего элемента есть типа подробной информации. А можно без экспандера? Чтобы итем состоял какбы из двух элементов: Заголовок и Подробная информация. Или экспандер то же самое? Если так, то не подскажите как его внешний вид изменить можно?
Нужно чтобы не было кнопки, а панелька открывалась по щелчка на заголовке.

Это сообщение отредактировал(а) Vanes - 13.1.2009, 10:35
PM MAIL   Вверх
Partizan
Дата 13.1.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

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



Vanes, вот пример накидал:

Код

        public class Item
        {
            public string Header { get; set; }
            public int Value { get; set; }
            public string Info { get; set; }

            public Item(string header, int value, string info)
            {
                this.Header = header;
                this.Value = value;
                this.Info = info;
            }
        }


Код

...
public ObservableCollection<Item> TreeItems { get; private set; }
...
//В конструкторе до InitializeComponents();
            this.TreeItems = new ObservableCollection<Item>();
            this.TreeItems.Add(new Item("Item1", 1, "Test item 1"));
            this.TreeItems.Add(new Item("Item2", 2, "Test item 2"));


Код

<TreeView>
            <TreeView.Resources>
                <DataTemplate x:Key="ExpandableItem">
                    <DockPanel>
                        <Grid DockPanel.Dock="Bottom" Name="detailsGrid">
                            <!--<Grid.Visibility>
                                <MultiBinding>
                                    
                                </MultiBinding>
                            </Grid.Visibility>-->
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <StackPanel Orientation="Horizontal" Grid.Row="0">
                                <TextBlock Text="Value: "/>
                                <TextBlock Text="{Binding Value}"/>
                            </StackPanel>
                            
                            <StackPanel Orientation="Horizontal" Grid.Row="1">
                                <TextBlock Text="Info: "/>
                                <TextBlock Text="{Binding Info}"/>
                            </StackPanel>
                            
                            <TextBlock Grid.Row="2"></TextBlock>
                        </Grid>

                        <TextBlock Text="{Binding Header}"></TextBlock>
                    </DockPanel>
                </DataTemplate>
            </TreeView.Resources>
            <TreeView.Items>
                <TreeViewItem Header="Root" ItemTemplate="{StaticResource ExpandableItem}" 
                              ItemsSource="{Binding ElementName=mainWnd, Path=TreeItems}">
                </TreeViewItem>
            </TreeView.Items>
        </TreeView>



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


Новичок



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

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



Vanes, експандер это то, что вам нужно. переопределение внешнего вида всех контролов есть на thevista.ru - статья 13, посмотрите, сделайте как вам нужно. Архив переопределенных контролов аттачу

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  2180_mycontrolstyles.rar 16,59 Kb
PM MAIL   Вверх
Vanes
Дата 16.1.2009, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 10.1.2009
Где: Новосибирск

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



Всем спасибо. Вроде разобрался.
PM MAIL   Вверх
Vanes
Дата 16.1.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 10.1.2009
Где: Новосибирск

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



Adm0r Большое спасибо за ссылку, очень понравилось. Думаю очень мне поможет в дальнейшей работе
PM MAIL   Вверх
SimVad
Дата 20.1.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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