我关注ListView
<ListView Name="listAccounts" Width="300" AllowDrop="True" SelectionMode="Single" CanDragItems="True" CanDrag="True" CanReorderItems="True" Background="{ThemeResource myBackground}" DragItemsStarting="listAccounts_DragItemsStarting" Drop="listAccounts_Drop">
并将我的事件处理程序定义为
private void listAccounts_DragItemsStarting(object sender, DragItemsStartingEventArgs e)
{
e.Data.SetData("itemIndex", (e.Items[0] as AccountList).Text.ToString());
}
private async void listAccounts_Drop(object sender, DragEventArgs e)
{
string itemIndexString = await e.Data.GetView().GetTextAsync("itemIndex");
}
我不知道还能做些什么。我想在同一个列表中实现列表项的移动。
答案 0 :(得分:6)
我查看了正式的Windows 10样本,找了drag-drop sample并将其修剪下来(比如从目标到源删除拖动)。事实证明,您甚至不必处理任何事件以在单个ListView
工作中进行重新排序。
<ListView x:Name="TargetListView"
Grid.Row="2" Grid.Column="1" Margin="8,4"
CanReorderItems="True" CanDrag="True" AllowDrop="True"
/>
重新排序商品后检查ObservableCollection
,您会发现它是正确的。如果您想跟踪重新排序,则必须检查CollectionChanged
上的ObservableCollection
事件,因为ListView
上没有任何事件可以执行此操作。
如果你想支持阻力&amp;在多个列表视图中下降,我想再看看样本。