Wpf ListView DragDrop不适用于VS2013中的新项目

Wpf ListView DragDrop不适用于VS2013中的新项目,wpf,listview,drag-and-drop,Wpf,Listview,Drag And Drop,这是一个非常奇怪的问题,我有一个列表视图,我想把文件放到其中,我知道如何获取文件信息等,奇怪的是,我确实让它工作得很好,但后来它似乎停止了 我尝试过创建一个新项目,只使用listview对象allowdrop=true,dragenter/drop事件已创建,dragenter包含e.handled=true和e.effects=effects.none 但是这些事件不会触发,我有一个项目是在早期版本的VS上创建的,这个项目很好用 这是圣诞礼物 <Window x:Name="mainWi

这是一个非常奇怪的问题,我有一个列表视图,我想把文件放到其中,我知道如何获取文件信息等,奇怪的是,我确实让它工作得很好,但后来它似乎停止了

我尝试过创建一个新项目,只使用listview对象allowdrop=true,dragenter/drop事件已创建,dragenter包含e.handled=true和e.effects=effects.none

但是这些事件不会触发,我有一个项目是在早期版本的VS上创建的,这个项目很好用

这是圣诞礼物

<Window x:Name="mainWin" x:Class="droptest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <Style x:Key="ColumnHeaders" TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="Visibility" Value="Collapsed"/>
        </Style>
    </Window.Resources>

    <Grid>
        <ListView x:Name="ImageList" AllowDrop="True" HorizontalAlignment="Left" Height="204" Margin="65,69,0,0" VerticalAlignment="Top" Width="374" DragEnter="ImageList_DragEnter" Drop="ImageList_Drop" DragOver="ImageList_DragOver" DragLeave="ImageList_DragLeave">
            <ListView.View>
                <GridView ColumnHeaderContainerStyle="{StaticResource ColumnHeaders}">
                    <GridViewColumn/>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
</Window>

这是代码

namespace droptest
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }


        private void ImageList_DragEnter(object sender, DragEventArgs e)
        {
            e.Handled = true;
            e.Effects = DragDropEffects.None;
        }

        private void ImageList_Drop(object sender, DragEventArgs e)
        {

        }

        private void ImageList_PreviewDragOver(object sender, DragEventArgs e)
        {
            e.Handled = true;
            e.Effects = DragDropEffects.None;
        }

        private void ImageList_PreviewDrop(object sender, DragEventArgs e)
        {

        }

        private void ImageList_DragOver(object sender, DragEventArgs e)
        {
            e.Handled = true;
            e.Effects = DragDropEffects.None;
        }

        private void ImageList_DragLeave(object sender, DragEventArgs e)
        {
            e.Handled = true;
            e.Effects = DragDropEffects.None;
        }


    }
}
namespace droptest
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有void ImageList_DragEnter(对象发送方,DragEventArgs e)
{
e、 已处理=正确;
e、 效果=DragDropEffects.None;
}
私有void ImageList_Drop(对象发送器,DragEventArgs e)
{
}
私有void ImageList_PreviewDragOver(对象发送方,DragEventArgs e)
{
e、 已处理=正确;
e、 效果=DragDropEffects.None;
}
私有void ImageList_PreviewDrop(对象发送方,DragEventArgs e)
{
}
私有无效图像列表\u DragOver(对象发送方,DragEventArgs e)
{
e、 已处理=正确;
e、 效果=DragDropEffects.None;
}
私有void ImageList_DragLeave(对象发送方,DragEventArgs e)
{
e、 已处理=正确;
e、 效果=DragDropEffects.None;
}
}
}
我不认为我做错了什么,事实上我确信我没有做错,因为我一直在工作


任何指针都将不胜感激。

您的DragEnter事件处理程序是borken,它不会让任何其他事件触发。你什么也没说你是怎么开始拖的,这很重要。嗨,汉斯,谢谢你的评论,你能详细解释一下吗,我不明白你的意思?它是如何被破坏的?如果我在所有事件中都设置了断点,那么它不会到达任何一个事件?DragEnter首先被触发,它决定您的列表视图是否是该删除的候选对象。您应该做的是通过DragEventArgs.Data查看被拖动的对象,并确定您是否知道如何处理它。例如,如果是文本,则表示同意,但如果是图像或其他任何内容,则表示不同意。通过将“e.Effects”指定为“无”以外的值,可以进行“确定”。你仍然没有解释如何开始拖动,所以这只是瞎猜为什么DragEnter事件没有启动。啊,好的,我正在从explorer拖动数字看板包的图像、pdf、pps文件。我在主程序String[]dropItems=(String[])e.Data.GetData(DataFormats.FileDrop)中使用了它;它工作得很好,但后来停止了工作,这就是我不理解的。如果我在每一个事件中都设置了一个断点,那么没有一个事件会发生。。