private void dragDropManager_Drop(object sender, TreeListDropEventArgs e)
        {
            if (e.DraggedRows.Count != 1)
                throw new Exception("Multi row mode enabled. Turn it off");

            var row = e.DraggedRows[0] as TreeListNode;
            if (row == null) throw new Exception("Unexpected error");

            var model = DataContext as SourcesManagerMainViewModel;
            if (model == null) throw new Exception("Data context is null");

            var result = model.MoveNote(row.Content as MaterialDto,
                e.TargetNode != null ? e.TargetNode.Content as MaterialDto : null);
            if (!result)
            {
                e.Manager.AllowDrop = false;
                e.DelayedExecute(() => e.Manager.AllowDrop = true);
                e.Handled = true;
            }
        }
		void RaiseDroppedEvent(DragDropManagerBase sourceManager, TreeListDropEventArgs dropEventArgs) {
			if(DroppedEventHandler != null) {
				TreeListDroppedEventArgs e = new TreeListDroppedEventArgs() {
					DataControl = DataControl as GridDataControlBase,
					TargetNode = dropEventArgs.TargetNode,
					HitInfo = dropEventArgs.HitInfo,
					Manager = this,
					DraggedRows = dropEventArgs.DraggedRows,
					SourceManager = sourceManager,
					DropTargetType = dropEventArgs.DropTargetType,
				};
				DroppedEventHandler(this, e);
			}
		}
		TreeListDropEventArgs RaiseDropEvent(DragDropManagerBase sourceManager, TreeListViewHitInfo hitInfo, TreeListNode insertNode, IList rows, DropTargetType dropTargetType) {
			TreeListDropEventArgs e = new TreeListDropEventArgs() {
				HitInfo = hitInfo,
				TargetNode = insertNode,
				DraggedRows = rows,
				DropTargetType = dropTargetType,
				Handled = false,
				Manager = this,
				SourceManager = sourceManager,
				DataControl = DataControl as GridDataControlBase,
			};
			if(DropEventHandler != null)
				DropEventHandler(this, e);
			return e;
		}