WPF MVVM Treeview move node

356 Views Asked by At

my goal is to create a treeview with movable node. So, i find an inspiration at the following link: [Treeview with drag and drop] https://www.codeproject.com/Articles/55168/Drag-and-Drop-Feature-in-WPF-TreeView-Control .

My question is : how is possible to bind with command in viewmodel this events?

<treeview.itemcontainerstyle>

    <style targettype="{x:Type TreeViewItem}">        
      <EventSetter Event="TreeViewItem.DragOver"  Handler="treeView_DragOver"/>
      <EventSetter Event="TreeViewItem.Drop" Handler="treeView_Drop"/>
      <EventSetter Event="TreeViewItem.MouseMove" Handler="treeView_MouseMove"/> 
      <EventSetter Event="TreeViewItem.MouseDown" Handler="treeView_MouseDown"/>
    </style>              

 </treeview.itemcontainerstyle> 

I try this :

<EventSetter Event="TreeViewItem.DragOver"  Handler="{Binding DragOverCommand}"/>

and in relative viewmodel create DragOverCommand:

ICommand _cmdDragOverCommand;
        public ICommand DragOverCommand
        {
            get
            {
                if (_cmdDragOverCommand== null)
                {
                    _cmdDragOverCommand= new RelayCommand<tvMenuItem>(DragOverCommandExecute, CanDragOverCommandExecute);
                }
                return _cmdDragOverCommand;
            }
        }

        private bool CanDragOverCommandExecute(object param)
        {
            return true;
        }

        private void DragOverCommandExecute(object param)
        {
            try
            {
               ...     
            }
            catch (Exception ex)
            {
                ...
            }
        }

But at run time following error is shown: enter image description here

Have you an idea?

There are free graphic controls?

Thanks in advance

Cheers

0

There are 0 best solutions below