private void st_Drop(object sender, DragEventArgs e) { NavDrag.Verbose("dnd", e.Effects + " " + e.Data); // MessageBox.Show("{2}\r\n{0}\r\nto\r\n{1}".Arg(_draggingModel, _dropTarget, e.Effects)); var eff = GetDropEffects(_draggingModel, DropTarget, e); if (eff == DragDropEffects.Copy) { _draggingModel.Copy(); DropTarget.PasteChild(); } else if (eff == DragDropEffects.Move) { if (DropTarget != null) { _draggingModel.Cut(); DropTarget.PasteChild(); } } DropTarget = null; // erease clipboard PageViewModel.Copy(null); }
private void Drag_DragOver(object sender, DragEventArgs e) { NavDrag.Verbose("dnd", e.Effects + " " + e.Data); var element = sender as FrameworkElement; var eff = DragDropEffects.None; if (element != null) { var currentPage = element.DataContext as PageViewModel; if (currentPage != null) { DropTarget = currentPage; NavDrag.Verbose("PotentialDropTarget", DropTarget); eff = GetDropEffects(_draggingModel, DropTarget, e); } } e.Effects = eff; NavDrag.Verbose("ResultEffect", e.Effects); e.Handled = true; }
void ConnectionPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.Is("IsConnected")) { var now = Connection.IsConnected; if (!_isConnectedLast && now) { // Connected - construct model container _modelContainer = new SpringContainer(); _modelContainer.Add <IStorage>(Connection.Storage); _modelContainer.Add <PageViewModelCache, PageViewModelCache>(); PageViewModel.Subscribe(Storage); _currentPage = PageViewModelCache.Get(RootPage, null); OnPropertyChanged(null); } else if (_isConnectedLast && !now) { // Disconnected _modelContainer = null; OnPropertyChanged(null); } _isConnectedLast = now; } }
public static PageViewModel Get(PageViewModelCache cache, IPage page, PageViewModel parent) { }
public static bool Cut(PageViewModel page) { return(Copy(page, true)); }