实现的是将RadTreeView中的Item拖拽到TextBox中。
前台代码如下:
前台代码
1 <telerikNavigation:RadTreeView IsDragTooltipEnabled="False" Margin="5 0 0 5" 2 x:Name="RadTreeView1" Grid.Row="1" HorizontalAlignment="Left" 3 VerticalAlignment="Top" SelectionMode="Multiple" IsDragDropEnabled="True" PreviewDragEnded="radTreeView_PreviewDragEnded"> 4 <telerikNavigation:RadTreeViewItem Header="Item1" 5 DefaultImageSrc="../Images/TreeView/Outlook/1PersonalFolders.png" 6 IsExpanded="True"> 7 <telerikNavigation:RadTreeViewItem Header="Item2" 8 DefaultImageSrc="../Images/TreeView/Outlook/2DeletedItems.png" /> 9 <telerikNavigation:RadTreeViewItem Header="Drafts" 10 DefaultImageSrc="../Images/TreeView/Outlook/3Drafts.png" /> 11 </telerikNavigation:RadTreeViewItem> 12 </telerikNavigation:RadTreeView> 13 <TextBox x:Name="TextBox_DropConsumer" Width="100" Height="30" Grid.Column="2" Grid.Row="1" BorderThickness="3" Margin="0 10 0 0" 14 VerticalAlignment="Top" HorizontalAlignment="Left" 15 telerikDragDrop:RadDragAndDropManager.AllowDrop="True" />
后台代码:
后台代码
1 public partial class SilverlightControl1 : System.Windows.Controls.UserControl 2 { 3 public SilverlightControl1() 4 { 5 InitializeComponent(); 6 this.InitializeComponent(); 7 RadDragAndDropManager.AddDropQueryHandler(TextBox_DropConsumer, new EventHandler<DragDropQueryEventArgs>(this.TextBox_OnDropQuery)); 8 RadDragAndDropManager.AddDropInfoHandler(TextBox_DropConsumer, new EventHandler<DragDropEventArgs>(this.TextBox_OnDropInfo)); 9 } 10 11 ObservableCollection<String> personList = new ObservableCollection<String>(); 12 void TextBox_OnDropQuery(object sender, DragDropQueryEventArgs e) 13 { 14 e.QueryResult = true; 15 } 16 private void radTreeView_PreviewDragEnded(object sender, RadTreeViewDragEndedEventArgs e) 17 { 18 e.Handled = true; 19 } 20 21 void TextBox_OnDropInfo(object sender, DragDropEventArgs e) 22 { 23 if (e.Options.Status == DragStatus.DropComplete) 24 { 25 String q = ((e.Options.Payload as Collection<Object>)[0] as RadTreeViewItem).Header as String; 26 this.TextBox_DropConsumer.Text = q; 27 MessageBox.Show(q); 28 } 29 } 30 }