简体   繁体   English

拖放在DataGrid(WPF)中不起作用

[英]Drag & Drop not work in DataGrid (WPF)

In my Excel AddIn, I have a WPF window. 在我的Excel加载项中,我有一个WPF窗口。 Inside the windows, there is a usercontrol which has a datagrid (call it datagrid1) in the topper part. 在窗口内,有一个用户控件,在顶部控件中有一个datagrid(称为datagrid1)。 The lower part of the window has another usercontrol which contains a datagrid (call it datagrid2) . 窗口的下部有另一个usercontrol,其中包含一个datagrid(称为datagrid2)。 I want to drag rows from datagrid1 and drop them to datagrid2 我想将行从datagrid1拖放到datagrid2

for datagrid1, 对于datagrid1,

<toolkit:DataGrid 
              Style="{StaticResource DataGridStyle}"
              SelectionMode="Extended"
              ItemsSource="{Binding Relations}"
              SelectedItem="{Binding ListSelection}"
              MouseDoubleClick="dg_MouseDoubleClick"
              DragEnter="DataGrid_CheckDropTarget"
              DragLeave="DataGrid_CheckDropTarget"
              DragOver="DataGrid_CheckDropTarget"
              PreviewMouseLeftButtonDown="DG_PreviewMouseLeftButtonDown" 
                  ContextMenuOpening="dg_ContextMenuOpening"
              PreviewMouseMove="DG_MouseMove" BorderBrush="LightGray">

for datagrid2 对于datagrid2

<dg:DataGrid Grid.Row="1" x:Name="basketDG" Margin="5 0 5 0" Background="White"
              AutoGenerateColumns="False" 
              Style="{StaticResource DataGridStyle}"
              ItemsSource="{Binding MyItems, Mode=OneWay}" 
              SelectedItem="{Binding SelectedRelComplete}" 
              SelectionChanged="BasketDgSelectionChanged"                  
              Drop="DataGridDrop" 
              DragEnter="DataGridDragEnter" 
             >

    <Style x:Key="DataGridRowStyle"  TargetType="{x:Type dg:DataGridRow}">
        <Setter Property="AllowDrop" Value="True" />         
    </Style>
    <Style x:Key="DataGridStyle" TargetType="{x:Type dg:DataGrid}">
        <Setter Property="RowStyle" Value="{StaticResource DataGridRowStyle}" />
    </Style>

but the event DragEnter (on datagrid2) is not triggered at all. 但是事件DragEnter(在datagrid2上)根本没有触发。

What do I miss here? 我在这里想念什么?

After days of googling and struggling, at last I found something 经过数天的搜索和挣扎,终于找到了一些东西

This is a bug in WPF, drag drop will not work when executing WPF application in a non-default domain. 这是WPF中的错误,在非默认域中执行WPF应用程序时,拖放将不起作用。 see https://connect.microsoft.com/VisualStudio/feedback/details/422485/drag-and-drop-does-not-work-when-executing-a-wpf-application-in-a-non-default-appdomain 请参阅https://connect.microsoft.com/VisualStudio/feedback/details/422485/drag-and-drop-does-not-work-when-executing-a-wpf-application-in-a-non-default-appdomain

Thanks a lot for Samuel Jack's addressing the issue and putting a workaround in his blog @ http://blog.functionalfun.net/2009/10/work-around-for-wpf-bug-drag-and-drop.html 非常感谢塞缪尔·杰克(Samuel Jack)解决了这个问题,并在他的博客@ http://blog.functionalfun.net/2009/10/work-around-for-wpf-bug-drag-and-drop.html中提供了解决方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM