Some mistake with drag and drop an item from listbox

瘦欲@ 提交于 2019-12-11 00:24:35

问题


I have a ListBox and I want to drag and drop Items on a rectangle. Everything was okay when I had just items instead of ItemsSource and ItemTemplate, but now it's filled from collection. Once I drop it on rectangle I want another TextBox to show value from property "protection"

XAML

<ListBox 
   x:Name="listhelmets" 
   Height="214" 
   Width="248" 
   ItemsSource="{Binding ListHelmets}" 
   IsSynchronizedWithCurrentItem="True" 
   Canvas.Left="211" 
   Canvas.Top="72" 
   PreviewMouseDown="helmet_MouseDown1"    
   PreviewMouseLeftButtonDown="helmet_PreviewMouseLeftButtonDown"
   PreviewMouseMove="helmet_PreviewMouseMove">
   <ListBox.ItemTemplate >
      <DataTemplate >
         <StackPanel Orientation="Horizontal">
            <Image Source="{Binding Path=Image}" Width="56" Height="61"/>
            <TextBox Text="{Binding Path=protection}" Width="30" Height="20" />
         </StackPanel>
      </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

code behind

 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 &&
  (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
  Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
        {

            var listBox = sender as ListBox;
            var listBoxItem = listBox.SelectedItem;

            DataObject dragData = new DataObject(_dropIdentifier, listBoxItem);
            DragDrop.DoDragDrop(listBox, dragData, DragDropEffects.Move);
        } 
    }

    private void armature_MouseDown(object sender, MouseButtonEventArgs e)
    {
        _startPoint = e.GetPosition(null);
    }

    private void armature_PreviewMouseMove(object sender, MouseEventArgs e)
    {
        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))
        {

            var listBox = sender as ListBox;
            var listBoxItem = listBox.SelectedItem;

            DataObject dragData = new DataObject(_dropIdentifier, listBoxItem);
            DragDrop.DoDragDrop(listBox, dragData, DragDropEffects.Move);
        } 
    }

    private void weapons_MouseDown(object sender, MouseButtonEventArgs e)
    {
        _startPoint = e.GetPosition(null);
    }

   private void weapons_PreviewMouseMove(object sender, MouseEventArgs e)
    {
        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))
        {

            var listBox = sender as ListBox;
            var listBoxItem = listBox.SelectedItem;

            DataObject dragData = new DataObject(_dropIdentifier, listBoxItem);
            DragDrop.DoDragDrop(listBox, dragData, DragDropEffects.Move);
        } 
    }

回答1:


Everything is okay. I'll let this post in case someone will try to drag and drop from listbox



来源:https://stackoverflow.com/questions/34473707/some-mistake-with-drag-and-drop-an-item-from-listbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!