title: how to do drag and drop an item from one listbox to another
body: <p>Is it possible to drag and drop an item from one <code>Listbox</code> to another? not remove but copy. 
  from this <code>Listbox</code>. Actually, I have three listboxes, they are quite similar and I need to be able to drop an item(one from each <code>Listbox</code>) to <code>Listbox</code> listHero</p>
  
  <pre><code>&lt;ListBox x:Name="listhelmets" Height="214" Width="248" ItemsSource="{Binding ListHelmets}"
           IsSynchronizedWithCurrentItem="True" Canvas.Left="464" Canvas.Top="37" PreviewMouseDown="helmet_MouseDown1"
          PreviewMouseLeftButtonDown="helmet_PreviewMouseLeftButtonDown" DragLeave="helmet_DragLeave"
          PreviewMouseMove="helmet_PreviewMouseMove" SelectedValuePath="protection"&gt;
              &lt;ListBox.ItemTemplate &gt;
                  &lt;DataTemplate &gt;
                      &lt;StackPanel Orientation="Horizontal"&gt;
                          &lt;Image Source="{Binding Path=Image}" Width="56" Height="61"/&gt;
                          &lt;TextBox Height="30" Width="30"&gt;
                            &lt;Binding Path="protection" /&gt;
                             &lt;/TextBox&gt;
                         &lt;/StackPanel&gt;
                  &lt;/DataTemplate&gt;
              &lt;/ListBox.ItemTemplate&gt;
          &lt;/ListBox&gt;
  </code></pre>
  
  <p>to this one</p>
  
  <pre><code> &lt;ListBox x:Name="listHero" Height="148" Width="158" 
              &lt;ListBox.ItemTemplate &gt;
                  &lt;DataTemplate &gt;
                      &lt;StackPanel Orientation="Horizontal"&gt;
                       &lt;/StackPanel&gt;
                  &lt;/DataTemplate&gt;
              &lt;/ListBox.ItemTemplate&gt;
          &lt;/ListBox&gt;
  </code></pre>
  
  <p>Drag and drop for first listbox:</p>
  
  <pre><code>private void helmet_MouseDown1(object sender, MouseButtonEventArgs e)
  {
      _startPoint = e.GetPosition(null);
  
  
  }
  
  private void helmet_PreviewMouseMove(object sender, MouseEventArgs e)
  {
      Point mousePos = e.GetPosition(null);
      Vector diff = _startPoint - mousePos;
      if (e.LeftButton == MouseButtonState.Pressed &amp;&amp;
    (Math.Abs(diff.X) &gt; SystemParameters.MinimumHorizontalDragDistance ||
     Math.Abs(diff.Y) &gt; SystemParameters.MinimumVerticalDragDistance))
      {
  
          var listBox = sender as ListBox;
          var listBoxItem = listBox.SelectedItem;
  
          DataObject dragData = new DataObject(_dropIdentifier, listBoxItem);
          DragDrop.DoDragDrop(listBox, dragData, DragDropEffects.Move);
      }
  </code></pre>