dimanche 26 avril 2015

Drag button of DataTemplate and drag whole DataTemplate


    <ListBox x:Name="SelectedItemListBox"  AllowDrop="True"  >
        <ListBox.ItemTemplate>
            <DataTemplate >
                <StackPanel Orientation="Horizontal">
                    <Button Width="22" Height="22" PreviewMouseMove="OnSelectedItemListBoxPreviewMouseLeftButtonDown" Drop="OnSlectedItemDrop"/>
                    <view:SelectedItemView x:Name="SelectedItemView2"   Margin="0,5,0,5" />
                </StackPanel>                                                       
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

so,the single ListBoxItem of ListBox should contain a button and a SelectedItemView. I just want to drag the button of ListBoxItem to drag whole single ListBoxItem( ). It is a qustion.

private void OnSelectedItemListBoxPreviewMouseLeftButtonDown(object sender, MouseEventArgs e)
    {
        if (sender is Button)
        {
            ListBoxItem draggedItem = sender as ListBoxItem;
            draggedItem.IsSelected = true;  
            SelectedItemViewModel viewmodel = draggedItem.DataContext as SelectedItemViewModel;
            DataObject dataObject = new DataObject(viewmodel);
            DragDrop.DoDragDrop(SelectedItemListBox, dataObject, DragDropEffects.Move);             
        }
    }

unfortunately,the draggedItem is null. I can't get the ListBoxItem object. Thank in advanced.


Aucun commentaire:

Enregistrer un commentaire