DragCue Missing

3 posts, 0 answers
  1. Stephen Rouse
    Stephen Rouse avatar
    23 posts
    Member since:
    Feb 2005

    Posted 16 Aug 2012 Link to this post

    I have a treeview which has three "levels" Category; SubCategories and Products. Sourced from AdventureWorks DB during the feasibility stage of the project. This treeview works as expected; expands etc (see treeviewexpanded.png). I have been trying "Drag and Drop" to a GridView which is also working as I expected. However, I do not get a Drag Cue, I have included a screen shot of the cue that I get, which is just a blue square/dot ? 

    The Treview Items source is an ObserveableCollection of QuoteItems declared as follows:
    /// Quote Items, Holds the Hierarchical data setin the form of
    ///
    /// Category
    /// + SubCategory
    /// -+Product
    ///
    /// </summary>
    public class QuoteItem
    {
     
        public string name { get; set; }
        public ProductCategory Category { get; set; }
        public List<ProductItem> SubCategories { get; set; }
        public bool Selected { get; set; }
        public bool Expanded { get; set; }
     }

    Product Item is declared as
    public class ProductItem
    {
        public string name { get; set; }
        public ProductSubcategory SubCategory { get; set; }
        public List<Product> Products { get; set; }
        public bool Selected { get; set; }
        public bool Expanded { get; set; }
    }

    The Datatemplate for the Tree is defined as follows :
    <!--Data template for the Product object-->
    <telerik:HierarchicalDataTemplate x:Key="ProductTemplate" >
        <TextBlock Text="{Binding Name}"  Foreground="DarkBlue" />
    </telerik:HierarchicalDataTemplate>
     
    <!--Data template for the Sub-Category object-->
    <telerik:HierarchicalDataTemplate 
        x:Key="SubCategoryTemplate"
        ItemTemplate="{StaticResource ProductTemplate}"
        ItemsSource="{Binding  Products}">
        <TextBlock Text="{Binding SubCategory.Name}" />
    </telerik:HierarchicalDataTemplate>
     
    <!--Data template for the Category object-->
    <telerik:HierarchicalDataTemplate 
        x:Key="CategoryTemplate"
        ItemTemplate="{StaticResource SubCategoryTemplate}"
        ItemsSource="{Binding SubCategories}">
        <!--<TextBlock Text="{Binding Name}" />-->
        <TextBlock Text="{Binding Category.Name}" />
    </telerik:HierarchicalDataTemplate>

    The Tree View & Grid are declared as

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <telerik:RadBusyIndicator IsBusy="{Binding Path=TreeLoading}" x:Name="TreeViewBusyIndicator" Grid.Column="0" >
        <telerik:RadTreeView Grid.Column="0" x:Name="ProductTree"  Margin="4,5" ItemTemplate="{StaticResource CategoryTemplate}"
                             IsLoadOnDemandEnabled="False"  IsExpandOnSingleClickEnabled="True" SelectionMode="Multiple" AllowDrop="False"
                             IsDragDropEnabled="True" IsDragTooltipEnabled="False"  >
        </telerik:RadTreeView>
              </telerik:RadBusyIndicator>
     
    <telerik:RadGridView x:Name="RoomQuoteGridView" ShowGroupPanel="False" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False" 
                         Grid.Column="1" HorizontalAlignment="Left" telerik:RadDragAndDropManager.AllowDrop="True">
        <telerik:RadGridView.Columns>
            <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=Name}" IsFilterable="False" />
            <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=ListPrice, StringFormat=\{0:c\}}" IsFilterable="False" />
            <!--<telerik:GridViewDataColumn DataMemberBinding="{Binding ImageUrl}"/>-->
        </telerik:RadGridView.Columns>
     
    </telerik:RadGridView>

    I have trawled the help files, forums etc and downloaded a number of examples, by the way a treeview to GridView sample in the help files does not work, just produces errors, I expect this is due to some changes in the structure, but anyway that is a side issue.

    I just wish to have a drag cue as per the demo(s) but it does not appear!!!

    I have spent the last few days on this, changing various properties, methods etc and only managed to get the cue working, when the top level (Category) bing was changed to Name instead of Category Name, however the items(Categories) did not appear in the tree. I obviously cannot see the wood for the trees etc, anyone have a similar issue and "fixed" it.

    Steve








  2. Rosen Vladimirov
    Admin
    Rosen Vladimirov avatar
    640 posts

    Posted 17 Aug 2012 Link to this post

    Hi,

    I guess you have a problem with setting the DragCue in your code. I can suggest you to do the following:
    1) In your DragInfoHandler:
    IEnumerable draggedItems = e.Options.Payload as IEnumerable;
     
    if (e.Options.Status == DragStatus.DragInProgress)
    {
        //Set up a drag cue: 
        TreeViewDragCue cue = new TreeViewDragCue();
        //Here we need to choose a template for the items: 
        cue.ItemTemplate = this.Resources["MyTemplate"] as DataTemplate;
        cue.ItemsSource = draggedItems;
        e.Options.DragCue = cue;
    }

    2) In your DropQueryHandle:
    if (e.QueryResult)
    {
        TreeViewDragCue cue = e.Options.DragCue as TreeViewDragCue;
        cue.IsDropPossible = true;
    }

    3) In your DropInfoHandler:
    TreeViewDragCue cue = e.Options.DragCue as TreeViewDragCue;
    cue.IsDropPossible = true;
    if (e.Options.Status == DragStatus.DropPossible)
    {
        // Set a suitable text: 
        string newString;
        newString = String.Format("Add {0}", draggedItems.Count);
        cue.DragActionContent = newString;
     
        cue.IsDropPossible = true;
    }

    This should work. If you face any problems feel free to contact us and if possible send us a sample project to reproduce the issue and the exact way of using DragCue.
    I'd like to recommend you to use our newer DragDropManager instead of RadDragAndDropManager. It has some other features they may help you. For more information you can check our online help here.

    Kind regards,
    Rosen Vladimirov
    the Telerik team

    Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

  3. DevCraft banner
  4. Stephen Rouse
    Stephen Rouse avatar
    23 posts
    Member since:
    Feb 2005

    Posted 30 Aug 2012 Link to this post

    I tried the suggestion you gave, but with the same result. I then decided to use the DragDropManager as suggested.

    I'd like to recommend you to use our newer DragDropManager instead of RadDragAndDropManager. It has some other features they may help you. For more information you can check our online help here

    This at least enabled me to get a DragCue, although the documentation appears a little sparse and probably version 1. I decided to use one the demos and work on that, but after that I have reintroduced the lack of a cue, or indeed other side affects. I will do some more investigation, and if possible split out the project to provide you with a sample to investigate.
Back to Top