This question is locked. New answers and comments are not allowed.
Hi,
I have a simple DragDrop from ListBox to TileView Implimentation.
I am not getting the Selected Item on Drag.
On DragQueryEvent i get Dim box As ListBox = TryCast(ItemsControl.ItemsControlFromItemContainer(listBoxItem), ListBox)
as Nothing.
e.option.selectedItem is also Nothing
Below is my XAML,
And here is my VB code,
I have a simple DragDrop from ListBox to TileView Implimentation.
I am not getting the Selected Item on Drag.
On DragQueryEvent i get Dim box As ListBox = TryCast(ItemsControl.ItemsControlFromItemContainer(listBoxItem), ListBox)
as Nothing.
e.option.selectedItem is also Nothing
Below is my XAML,
<UserControl x:Class="Iatric.SAM.DashBoard.Reports" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:telerikControl="clr-namespace:Telerik.Windows.Controls.DragDrop;assembly=Telerik.Windows.Controls" xmlns:telerikNavigation="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" xmlns:dragDrop="clr-namespace:Telerik.Windows.Controls.DragDrop;assembly=Telerik.Windows.Controls" xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" xmlns:telerikStyle="http://schemas.telerik.com/2008/xaml/presentation" xmlns:System="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Width="Auto" Background="#dbe6ea"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Border BorderBrush="#bed8d9" BorderThickness="1" Background="White" Margin="5" CornerRadius="5" Height="Auto" Width="Auto"> <StackPanel Orientation="Vertical" Grid.Column="0" Grid.Row="1"> <Border BorderBrush="#bed8d9" Margin="10" BorderThickness="1" Background="White" CornerRadius="3" Height="460"> <telerikNavigation:RadTileView Name="dragDockPanelHost" Height="460" telerikControl:RadDragAndDropManager.AllowDrop="True" IsItemDraggingEnabled="True" Grid.Row="0" Grid.Column="0"> </telerikNavigation:RadTileView> </Border> <telerik:RadWrapPanel x:Name="imageContainer" IsAnimated="True" UseLayoutRounding="True"> <ListBox VerticalAlignment="Top" x:Name="lstExpandView" BorderBrush="Brown" BorderThickness="1" dragDrop:RadDragAndDropManager.AllowDrag="True" dragDrop:RadDragAndDropManager.AllowDrop="True" Height="103"> </ListBox> </telerik:RadWrapPanel> </StackPanel> </Border> </Grid></UserControl>And here is my VB code,
Imports System.Collections.ObjectModelImports System.IOImports System.Xml.LinqImports Iatric.SAM.InfrastructureImports Iatric.SAM.DashBoard.ControlsImports Telerik.Windows.Controls.DragDropImports Telerik.Windows.ControlsImports Telerik.WindowsPartial Public Class Reports Inherits UserControl Public Sub New() Try InitializeComponent() GetListViewItmes() Catch ex As Exception Dim ex1 As String = ex.Message End Try End Sub Private Sub GetListViewItmes() Dim btnList As New List(Of Button) From { New Button With {.Name = "btn1", .Content = "Medical Identity Reports"}, New Button With {.Name = "btn2", .Content = "Activity Reports"}, New Button With {.Name = "btn3", .Content = "Dictionary Edit Reports"}, New Button With {.Name = "btn4", .Content = "CareTaker Reports"}, New Button With {.Name = "btn5", .Content = "Dial Up Reports"} } lstExpandView.ItemsSource = btnList lstExpandView.DataContext = btnList lstExpandView.DisplayMemberPath = "Content" lstExpandView.SelectedValuePath = "Name" RadDragAndDropManager.AddDragInfoHandler(lstExpandView, AddressOf OnDragInfo) RadDragAndDropManager.AddDragQueryHandler(lstExpandView, AddressOf OnDragQuery) RadDragAndDropManager.AddDropInfoHandler(dragDockPanelHost, AddressOf OnDropInfo) RadDragAndDropManager.AddDropQueryHandler(dragDockPanelHost, AddressOf OnDropQuery) RadDragAndDropManager.SetAllowDrop(dragDockPanelHost, True) EventManager.RegisterClassHandler(GetType(RadTileViewItem), RadDragAndDropManager.DropInfoEvent, New EventHandler(Of DragDropEventArgs)(AddressOf OnDropInfo), True) End Sub Private Sub OnDropInfo(ByVal sender As Object, ByVal e As DragDropEventArgs) Dim box As ItemsControl = TryCast(e.Options.Destination, ItemsControl) Dim itemsSource As IList(Of Button) = TryCast(box.ItemsSource, IList(Of Button)) Dim payload As Button = TryCast(e.Options.Payload, Button) If e.Options.Status = DragStatus.DropComplete Then If Not itemsSource.Contains(payload) Then itemsSource.Add(payload) End If End If End Sub Private Sub OnDropQuery(ByVal sender As Object, ByVal e As DragDropQueryEventArgs) Dim box As ItemsControl = TryCast(e.Options.Destination, ItemsControl) Dim itemsSource As IList(Of Button) = TryCast(box.ItemsSource, IList(Of Button)) Dim payload As Button = TryCast(e.Options.Payload, Button) e.QueryResult = payload IsNot Nothing AndAlso Not itemsSource.Contains(payload) End Sub Private Sub OnDragInfo(ByVal sender As Object, ByVal e As DragDropEventArgs) Dim listBoxItem As ListBoxItem = TryCast(e.Options.Source, ListBoxItem) Dim box As ListBox = TryCast(ItemsControl.ItemsControlFromItemContainer(listBoxItem), ListBox) Dim itemsSource As IList(Of Button) = TryCast(box.ItemsSource, IList(Of Button)) Dim payload As Button = TryCast(e.Options.Payload, Button) If e.Options.Status = DragStatus.DragComplete Then If payload IsNot Nothing AndAlso itemsSource.Contains(payload) Then itemsSource.Remove(payload) End If End If End Sub Protected Sub OnDragQuery(ByVal sender As Object, ByVal e As DragDropQueryEventArgs) Dim listBoxItem As ListBoxItem = TryCast(e.Options.Source, ListBoxItem) Dim box As ListBox = TryCast(ItemsControl.ItemsControlFromItemContainer(listBoxItem), ListBox) If e.Options.Status = DragStatus.DragQuery AndAlso box IsNot Nothing Then e.Options.Payload = box.SelectedItem Dim cue As New ContentControl() cue.ContentTemplate = TryCast(Me.Resources("ApplicationDragTemplate"), DataTemplate) cue.Content = box.SelectedItem e.Options.DragCue = cue e.Options.ArrowCue = RadDragAndDropManager.GenerateArrowCue() End If e.QueryResult = True End SubEnd Class