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); } }
//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); } }