在我的Excel AddIn中,我有一个WPF窗口。在窗口内部,有一个usercontrol,它在topper部分有一个datagrid(称之为datagrid1)。窗口的下半部分有另一个usercontrol,它包含一个datagrid(称之为datagrid2)。 我想从datagrid1拖动行并将它们拖放到datagrid2
for 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
<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上)。
我在这里想念什么?
答案 0 :(得分:0)
经过几天的谷歌搜索和挣扎,终于找到了一些东西
这是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解决这个问题,并在他的博客中提出了解决方法 @ http://blog.functionalfun.net/2009/10/work-around-for-wpf-bug-drag-and-drop.html