ListView 重新排序是否停止在 Windows 10 个 RT 应用程序上工作?
Did ListView reordering stop working on Windows 10 RT apps?
我在 Windows 8.1 应用程序 运行 中有一个简单的 ListView Windows 10(版本 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 of Items,我正在使用 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 并将其设置为页面的 DataContext 时,我设置了一个项目列表,其中包含数字(1 到 6),因此我可以看到它们之间的区别并查看是否功能正常。
此处的目标是通过将行从 ListView 中的一个位置拖放到另一个位置来重新排序项目。阅读文档,这应该可以工作,而且确实在一个月前就可以了。自从我上次看到它工作以来,我不认为我对代码进行了任何更改。 (我知道,这是一个难以接受的说法。)
现在,您可以将项目拖放到不同的位置,但它们会弹出回到原来的位置。换句话说,可以将项目拖动到 ListView 中的不同位置,但在放下时它们会恢复到原来的位置。
我怀疑最近的 Windows 10 更新破坏了这个功能(就像 CurrentApp.LicenseInformation
一样),但是如果有人在这里看到我做错了什么,我会感谢知道它是什么。
这是 Windows 10 build 10586 的一个已知问题,目前正在调查中。
我在 Windows 8.1 应用程序 运行 中有一个简单的 ListView Windows 10(版本 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 of Items,我正在使用 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 并将其设置为页面的 DataContext 时,我设置了一个项目列表,其中包含数字(1 到 6),因此我可以看到它们之间的区别并查看是否功能正常。
此处的目标是通过将行从 ListView 中的一个位置拖放到另一个位置来重新排序项目。阅读文档,这应该可以工作,而且确实在一个月前就可以了。自从我上次看到它工作以来,我不认为我对代码进行了任何更改。 (我知道,这是一个难以接受的说法。)
现在,您可以将项目拖放到不同的位置,但它们会弹出回到原来的位置。换句话说,可以将项目拖动到 ListView 中的不同位置,但在放下时它们会恢复到原来的位置。
我怀疑最近的 Windows 10 更新破坏了这个功能(就像 CurrentApp.LicenseInformation
一样),但是如果有人在这里看到我做错了什么,我会感谢知道它是什么。
这是 Windows 10 build 10586 的一个已知问题,目前正在调查中。