开发者

WPF Drag Drop, User Control becomes non-responsive

I'm doing some drag and drop between two ListBox items containing a UserControl, ClaimSectionTemplate as the DataTemplate for the items in the collection that are populating the source listbox.

Now I have 2 buttons on ClaimSectionTemplate, AddField and RemoveField, and they respectively add and remove fields from a child collection on the ClaimSection object that is shown in the ClaimSectionTemplate user control.

So what is happening is when I drop a ClaimSection into the target ListBox the original object becomes unresponsive no longer allowing me to interact with the user control.

MainWindow.Xaml

        <ListBox Margin="13,12,12,12" Name="NewSections" Grid.Column="1" AllowDrop="True" Drop="NewSections_Drop">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <me:ClaimSectionTemplate />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</Window>

Main Window Drag Drop Handlers

private void ExistingSections_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var parent = (ListBox)sender;

        dragSource = parent;

        var data = ExistingSections.SelectedItem;

        if (data != null)
        {
            DragDrop.DoDragDrop(parent, data, DragDropEffects.Move);
        }
    }

    private void NewSections_Drop(object sender, DragEventArgs e)
    {
        Models.ClaimSection dropData = (Models.ClaimSection)e.Data.GetData(typeof(Models.ClaimSection));
        ClaimSectionsNew.addClaimSection(dropData);
        ClaimSectionsExisting.removeClaimSection(dropData);
    }

ClaimSectionTemplate.xaml

<UserControl x:Class="InsuranceBuildVer1.Views.ClaimSectionTemplate"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="187" d:DesignWidth="300">
    <Grid Height="185">
        <TextBlock Height="23" Margin="12,12,12,0" Name="textBlock1" Text="{Binding Path=ClaimType}" VerticalAlignment="Top"  />
        <ListBox x:Name="FieldList" HorizontalAlignment="Left" Margin="10,71,0,12" Width="278" ItemsSource="{Binding Path=Fields.ClaimFields, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">

            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Identifier}" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <Button Content="Add Field" Height=开发者_如何转开发"23" HorizontalAlignment="Left" Margin="12,42,0,0" Name="AddField" VerticalAlignment="Top" Width="75" Click="AddField_Click" />
        <Button Content="Remove Field" Height="23" HorizontalAlignment="Left" Margin="103,42,0,0" Name="RemoveField" VerticalAlignment="Top" Width="96" Click="RemoveField_Click" />
    </Grid>
</UserControl>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜