Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2018, 09:35   #1
ZnZ
Пользователь
 
Регистрация: 14.06.2017
Сообщений: 45
По умолчанию Как реализовать перетаскивание в 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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить Checked в TreeView и как потом обработать событие нажатия флажка? Николай_Волк Помощь студентам 0 19.08.2017 16: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 09.01.2008 23:12