public void DragOver(IDropInfo dropInfo)
        {
            NoteViewModel    sourceItem = dropInfo.Data as NoteViewModel;
            NotebookMenuItem targetItem = dropInfo.TargetItem as NotebookMenuItem;

            if (sourceItem == null)
            {
                return;
            }

            if (targetItem != null)
            {
                dropInfo.DropTargetAdorner = DropTargetAdorners.Highlight;
                dropInfo.Effects           = DragDropEffects.Copy;
                return;
            }

            ListViewItem targetElement = dropInfo.VisualTarget as ListViewItem;

            if (targetElement != null && (targetElement.Name == "Favorites" || targetElement.Name == "Trash"))
            {
                dropInfo.DropTargetAdorner = DropTargetAdorners.Highlight;
                dropInfo.Effects           = DragDropEffects.Copy;
            }
        }
        public void Drop(IDropInfo dropInfo)
        {
            NoteViewModel sourceItem = dropInfo.Data as NoteViewModel;

            if (sourceItem == null)
            {
                return;
            }

            NotebookMenuItem targetItem    = dropInfo.TargetItem as NotebookMenuItem;
            ListViewItem     targetElement = dropInfo.VisualTarget as ListViewItem;

            bool removeFromSourceCollection = false;

            if (targetItem != null)
            {
                if (sourceItem.Note.Notebook != targetItem.Notebook.ID)
                {
                    if (sourceItem.Note.InTrashCan)
                    {
                        sourceItem.Note.InTrashCan = false;
                        //sourceItem.Note.Save();
                    }

                    Hub.Instance.Storage.DataStore.MoveNote(sourceItem.Note, targetItem.Notebook);

                    if (SelectedNotebook != null)
                    {
                        removeFromSourceCollection = true;
                    }
                }
                else if (sourceItem.Note.InTrashCan)
                {
                    sourceItem.Note.InTrashCan = false;
                    //sourceItem.Note.Save();

                    removeFromSourceCollection = true;
                }
            }
            else if (targetElement != null)
            {
                if (targetElement.Name == "Favorites")
                {
                    sourceItem.Note.Favourite = true;
                }
                else if (targetElement.Name == "Trash" && !sourceItem.Note.Protected)
                {
                    sourceItem.Note.InTrashCan = true;
                    removeFromSourceCollection = true;
                }

                sourceItem.SaveNote();
            }

            if (removeFromSourceCollection)
            {
                ObservableCollection <NoteViewModel> sourceList = dropInfo.DragInfo.SourceCollection as ObservableCollection <NoteViewModel>;
                sourceList?.Remove(sourceItem);
            }
        }
Exemple #3
0
        //private void ProcessDrop(object sender, ProcessDropEventArgs<IMainMenuItem> e)
        //{
        //	Log.Debug(e.DataItem.ToJson());

        //	/*
        //		if (e.OldIndex > -1)
        //		{
        //			ContextNote.ToDos.Move(e.OldIndex, e.NewIndex);
        //			e.ItemsSource.Move(e.OldIndex, e.NewIndex);
        //		}
        //		else
        //		{
        //			ContextNote.ToDos.Insert(e.NewIndex, e.DataItem.ToDoItem);
        //			e.ItemsSource.Insert(e.NewIndex, e.DataItem);
        //		}

        //		ContextNote.Save();
        //	 */
        //}

        private void NotebookMenu_OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            _model = DataContext as NotebookMenuViewModel;
            NotebookMenuItem first = _model?.Notebooks.FirstOrDefault();

            if (first != null)
            {
                _model.SelectedItemChangedCommand?.Execute(first);
            }
        }