Перетаскивание не работает в DataGrid (WPF) - PullRequest
2 голосов
/ 01 сентября 2011

В моем 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) вообще не вызывается.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 09 сентября 2011

После нескольких дней поисков и поисков я наконец-то нашел что-то

Это ошибка в 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

Большое спасибо за то, что Сэмюэль Джек обратился к проблеме и разместил обходной путь в своем блоге. @ http://blog.functionalfun.net/2009/10/work-around-for-wpf-bug-drag-and-drop.html

...