ListView重新排序是否停止在Windows 10 RT应用程序上运行?

时间:2015-12-24 20:24:43

标签: windows-runtime windows-8.1 winrt-xaml windows-10

我在Windows 10上运行的Windows 8.1应用程序中有一个简单的ListView(版本1511,版本10586.36):

<ListView 
        x:Name="ItemListView" 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Stretch" 
        ItemsSource="{Binding Items, Mode=OneWay}"
        ItemTemplate="{StaticResource ItemTemplate}"        
        TabNavigation="Local"
        SelectionMode="None"
        AllowDrop="True" 
        IsSwipeEnabled="True"
        CanReorderItems="True"
        Padding="0"
        Margin="10"         
    />

我的ViewModel中只有一个简单的ObservableCollection项目,我使用MVVMLight进行RaisePropertyChanged()实现:

private ObservableCollection<Item> items;
public ObservableCollection<Item> Items
    {
        get { return items; }
        set {
            var oldVal = items;
            items = value;
            RaisePropertyChanged("Items", oldVal, items, true);
        }
    }

当我实例化ViewModel并将其设置为Page的DataContext时,我设置了一个项目列表,其中包含数字(1到6),因此我可以看到它们之间的区别,看看是否或功能不正常。

此处的目标是通过从ListView中的一个位置拖动行并将其放入另一个位置来重新排序项目。阅读文档,这应该有效,而且确实是在一个月前完成的。我不相信自从我上次看到它工作以来我对代码有所改变。 (我知道,这是一个难以接受的说法。)

现在,发生的事情是您可以拖动项目并将它们放在不同的位置,但它们会弹回到原来的位置。换句话说,可以将项目拖动到ListView中的不同位置,但是在删除时它们会恢复到原始位置。

我怀疑最近的Windows 10更新破坏了这项功能(就像CurrentApp.LicenseInformation一样),但如果有人在这里看到我做错了什么,我会很高兴知道它是什么。