Answered Drag drop treeviewitem header text to TextBox

  • Thursday, January 31, 2008 12:41 AM
     
     

     

    Hello,

     

    I have a WPF application with a TreeView control and a TextBox control. I am struggling with dragging the treeviewitem header text into the textbox at the cursor location. I believe all WPF controls have the AllowDrop property set to true. What events will I have to implement to drag "item1" string and drop it on the textbox?

     

    <TreeView Name="treeview1">

    <TreeViewItem Header="Root">

    <TreeViewItem Header ="item1">

    </TreeViewItem>

    <TreeViewItem Header="item2">

    </TreeViewItem>

    <TreeViewItem Header="item3">

    </TreeViewItem>

    <TreeViewItem>

    </TreeView>

     

    Thanks and Regards,

    Sheetal

All Replies

  • Monday, February 04, 2008 3:16 AM
     
     Answered
    The following code works pretty well for me:

    Code Snippet
    <Grid>
    <
    Grid.ColumnDefinitions>
    <
    ColumnDefinition/>
    <
    ColumnDefinition/>
    </
    Grid.ColumnDefinitions>
    <
    TreeView
    Grid.Column="0"
    Name="treeview1"
    TreeViewItem.PreviewMouseLeftButtonDown="TreeViewItem_PreviewMouseLeftButtonDown">
    <
    TreeViewItem Header="Root">
    <
    TreeViewItem Header="item1"/>
    <
    TreeViewItem Header="item2"/>
    <
    TreeViewItem Header="item3"/>
    </
    TreeViewItem>
    </
    TreeView>
    <
    TextBox Grid.Column="1" Name="textBox" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
    </
    Grid>
    private void TreeViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
    TreeViewItem item = e.Source as TreeViewItem;
    if (item != null)
    {
    DataObject dataObject = new DataObject();
    dataObject.SetData(DataFormats.StringFormat, item.Header.ToString());
    DragDrop.DoDragDrop(item, dataObject, DragDropEffects.Copy);
    }
    }

    Hope this helps