我有一个用户控件,其中有一个TreeView控件作为流...
<Grid>
<!-- Tree View -->
<TreeView Name="devices"
ItemsSource="{Binding Entities}" AllowDrop="True">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="EventPreviewMouseLeftButtonDown"/>
<EventSetter Event="Drop" Handler="EventDrop"/>
<EventSetter Event="DragOver" Handler="EventDragOver"/>
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Width="25" Height="25" Source="{Binding ImagePath}" />
<Button Background="Transparent" BorderBrush="Transparent">
<TextBlock Text="{Binding Name}"/>
</Button>
<StackPanel.ToolTip>
<TextBlock Text="{Binding Description}"/>
</StackPanel.ToolTip>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
我在主窗口中使用此用户控件作为流动....
<StackPanel Grid.Column="0" Grid.Row="0" Orientation="Vertical" AllowDrop="False">
<local:DevicesTreeview x:Name="srcDevices" Height="220"/>
<local:DevicesTreeview x:Name="destDevices" Height="220"/>
</StackPanel>
我正试图从'srcDevices'中拖出一个叶子节点并使用'destDevices'的叶节点 DragDrop.DoDragDrop。 Draging正在启动但没有激活拖拽事件(即DragEnter / DragLeave / DragOver / Drop)。 我该如何解决这个问题?
Saquia
答案 0 :(得分:1)
你的堆栈面板上有AllowDrop =“False”,我不知道这是否会阻止你放弃那个项目,但我会删除它,看看它是否有所作为。您的放置事件也在树视图项而不是树视图上,这是您想要的行为吗?或者你想放在树视图上,在这种情况下你的事件处理程序应该在那里。
答案 1 :(得分:0)
感谢您的回复。
我已经解决了我的问题。首先,我尝试使用流动语句来初始化拖放...
DataObject dragData = new DataObject(); DragDrop.DoDragDrop(this.devices,dragData,DragDropEffects.Link);
但现在我正在使用流动语句,现在所有拖放事件都在解雇...
DragDrop.DoDragDrop(this.devices,treeViewItem,DragDropEffects.Move);
所以唯一不同的是我发送的第二个参数是不同的。
再次感谢
Saquia