Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.01.2018, 10:35   #1
ZnZ
Пользователь
 
Регистрация: 14.06.2017
Сообщений: 33
Репутация: 10
По умолчанию Как реализовать перетаскивание в TreeView

Привет!
Пишу программу под KonvaJS, и у меня есть дерево в котором я размещаю порядок элементов, и проблема в том что я не знаю как реализовать перетаскивание элементов.

Вот XAML моего TreeView, то что там ATreeView это я переопределил что бы была возможность сделать Binding на SelectedItem
Код:

<classes:ATreeView Width="225" ItemsSource="{Binding KanvaElements}" 
                           SelectedItem="{Binding SelectedKanvaElement, Mode=TwoWay}">
            <classes:ATreeView.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="ItemsSource" Value="{Binding Childrens}"/>
                    <Setter Property="IsExpanded" Value="True"/>
                    <Setter Property="Header">
                        <Setter.Value>
                            <MultiBinding Converter="{StaticResource TreeItemHeaderMultiConverter}">
                                <Binding Path="VariableName"/>
                                <Binding Path="ObjName"/>
                            </MultiBinding>
                        </Setter.Value>
                    </Setter>
                </Style>
            </classes:ATreeView.ItemContainerStyle>
        </classes:ATreeView>

Вот откуда берётся ItemsSource
Код:

public ObservableCollection<IKonvaElement> KanvaElements { get; set; } = new ObservableCollection<IKonvaElement>
        {
            new KonvaStage
            {
                Childrens = new List<IKonvaElement>
                {
                    new KonvaLayer
                    {
                        Childrens = new List<IKonvaElement>
                        {
                            new KonvaRect(),
                            new KonvaCircle(),
                            new KonvaEllipse(),
                            new KonvaWedge()
                        }
                    },
                    new KonvaLayer(),
                    new KonvaLayer()
                }
            }
        };

Каждый из этих элементов унаследован от IKonvaElement
Код:

public interface IKonvaElement
    {
        List<IKonvaProperty> Properties { get; set; }
        List<IKonvaElement> Childrens { get; set; }

        string ObjName { get; set; }
        string VariableName { get; set; }
    }

Как реализовать перетаскивание по дереву? Раньше такого не делал
Зарание спасибо!
ZnZ вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить Checked в TreeView и как потом обработать событие нажатия флажка? Николай_Волк Помощь студентам 0 19.08.2017 17:23
реализовать перетаскивание чего либо _BYTE Общие вопросы Delphi 0 22.05.2014 14:28
ASP.NET C# компонент TreeView. Перетащить какой - либо пункт меню из TreeView в TextBox Claster ASP.NET 0 02.01.2013 18:59
Нужно понять как сделать перетаскивание кнопок Баттон в Делфи INCIC Помощь студентам 4 08.06.2009 08:37
как запустить програму при перетаскивание на неё файла SeRhy Общие вопросы Delphi 3 10.01.2008 00:12


16:42.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru