private void FilterView_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            // Get the current mouse position
            Point  mousePos = e.GetPosition(null);
            Vector diff     = startPoint - mousePos;

            if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
                                                             Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
            {
                // Get the dragged ListViewItem
                ListView     listView     = sender as ListView;
                ListViewItem listViewItem =
                    WPFHelper.FindAnchestor <ListViewItem>((DependencyObject)e.OriginalSource);

                if (listViewItem == null)
                {
                    return;
                }

                // Find the data behind the ListViewItem
                AssetItem item = (AssetItem)listView.ItemContainerGenerator.
                                 ItemFromContainer(listViewItem);

                // Initialize the drag & drop operation
                DataObject dragData = new DataObject("assetFormat", item);
                DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Move);
            }
        }