不确定为什么这不起作用。 在我的WPF中,我在ItemContainerStyle中为DROP事件定义了一个事件,在后面的代码中定义了事件处理程序。但是当我拖动文件时,我会得到一个带有诊断线的圆圈。 这是WPF代码
<TreeView ItemsSource="{Binding Roots}" Name="Tree" Margin="0,22,0,0" Background="AliceBlue">
<TreeView.ItemContainerStyle>
<!-- This Style binds a TreeViewItem to a TreeViewItemViewModel. -->
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="Drop" Handler="treeView_Drop"></EventSetter>
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="ContextMenu" Value="{Binding ContextMenu}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
等
背后的代码现在只是一个骨架。我很高兴只是采取突破点
private void treeView_Drop(object sender, DragEventArgs e)
{
try
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, true))
{
// just a skeleton for now
}
}
catch (Exception ex)
{
}
}
欢迎所有想法,谢谢
答案 0 :(得分:1)
您应该设置TreeViewItem
类的AllowDrop属性:
<Setter Property="AllowDrop" Value="True" />
答案 1 :(得分:0)
好的,昨晚我发现了一些可能对其他人有帮助的好信息。 确实,我无法将文件从Windows资源管理器中删除到我的树视图节点,因为我在管理模式下运行。
然后我创建了一个按钮,从click事件运行一个Windows对话框,导航到一个文件后能够成功地将它放在树视图节点上。
事实上,我有两件事要开火。第一个是事件,我在ItemContainerStyle中设置了treeview节点本身。另一个事件是HeirarchicalDataTemplate中的stackpanel实现。
我很高兴看到它有效。 (这种情况多久发生一次?)但现在我意识到我还没有将其作为部署(darn)进行测试
无论如何,Oliver是唯一申请的人,所以我会在这里给他一些工具 - 谢谢