问题描述
||
如何设置Telerik WPF RadTreeView,以允许将文件从资源管理器拖放到树节点上?
我们使正常的拖放事件正常运行,但是它们不让我们知道我们放置在哪个节点上。
我们目前正在尝试使用Telerik自定义拖放功能,但运气不佳。
有想法吗?
解决方法
这很简单,您只需要自己连接即可。这是一个简单的例子。
然后这就是XAML:
<Window x:Class=\"WpfApplication1.MainWindow\"
xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"
Title=\"MainWindow\" Height=\"350\" Width=\"525\"
xmlns:core=\"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls\"
xmlns:telerik=\"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation\">
<Grid>
<telerik:RadTreeView x:Name=\"rtvMain\" AllowDrop=\"True\" IsDragDropEnabled=\"True\" ItemPrepared=\"rtvMain_ItemPrepared\">
<telerik:RadTreeViewItem Header=\"Sport Categories\">
<telerik:RadTreeViewItem Header=\"Football\">
<telerik:RadTreeViewItem Header=\"Futsal\" />
<telerik:RadTreeViewItem Header=\"Soccer\"/>
</telerik:RadTreeViewItem>
<telerik:RadTreeViewItem Header=\"Tennis\"/>
<telerik:RadTreeViewItem Header=\"Cycling\"/>
</telerik:RadTreeViewItem>
</telerik:RadTreeView>
</Grid>
码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void rtvMain_ItemPrepared(object sender,RadTreeViewItemPreparedEventArgs e)
{
e.PreparedItem.Drop += new DragEventHandler(PreparedItem_Drop);
}
private void PreparedItem_Drop(object sender,DragEventArgs e)
{
var destinationItem = sender as RadTreeViewItem;
if (destinationItem != null)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files)
{
Console.WriteLine(String.Format(\"Trying to put {0} into the folder {1}...\",file,destinationItem));
}
}
e.Handled = true;
}
}