拖放在DataGrid(WPF)中不起作用
在我的Excel AddIn中,我有一个WPF窗口。 在窗口内部,有一个用户控件,在顶部部分有一个数据网格(称之为datagrid1)。 窗口的下半部分有另一个用户控件,它包含一个数据网格(称之为datagrid2)。 我想从datagrid1拖放行到datagrid2
对于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">
为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>
但事件DragEnter(在datagrid2上)根本没有触发。
我在这里错过什么?
经过几天的search和苦苦挣扎,终于find了一些东西
这是WPF中的一个错误,在非默认域中执行WPF应用程序时,拖放不起作用。 请参阅https://connect.microsoft.com/VisualStudio/feedback/details/422485/drag-and-drop-does-not-work-when-executing-a-wpf-application-in-a-non-default-appdomain
非常感谢塞缪尔·杰克(Samuel Jack)解决这个问题,并在他的博客中join了一个解决方法@ http://blog.functionalfun.net/2009/10/work-around-for-wpf-bug-drag-and-drop.html