WPF Drag Drop, пользовательский элемент управления перестает отвечать на запросы - PullRequest
0 голосов
/ 11 мая 2011

Я выполняю перетаскивание между двумя ListBox элементами, содержащими UserControl, ClaimSectionTemplate в качестве DataTemplate для элементов в коллекции, которые заполняют список источников.

Теперь у меня есть 2 кнопки на ClaimSectionTemplate, AddField и RemoveField, и они соответственно добавляют и удаляют поля из дочерней коллекции объекта ClaimSection, который отображается в пользовательском элементе управления ClaimSectionTemplate.

Так что происходит, когда я бросаю ClaimSection в цель ListBox, оригинальный объект перестает отвечать на запросы, больше не позволяя мне взаимодействовать с пользовательским элементом управления.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...