我在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
一样),但如果有人在这里看到我做错了什么,我会很高兴知道它是什么。
答案 0 :(得分:2)