ListView重新排序删除后退按钮行为

时间:2015-01-21 04:49:56

标签: listview windows-phone-8.1 winrt-xaml

我有一个listview

<ListView x:Name="TasksListView" Margin="24,10,0,0" Grid.Row="3" Padding="0,0,12,0" 
          ItemsSource="{Binding Tasks}" ReorderMode="Enabled" IsItemClickEnabled="True" 
          ItemContainerStyle="{StaticResource TaskItemStyle}" 
          IsEnabled="{Binding IsLoading, Converter={StaticResource InverseBooleanConverter}}"/>

当我重新排序项目时,首次点击后退按钮导航失败。它适用于第二次点击。当我在HardwareButtons_BackPressed上获得点击时,listview的重新排序模式似乎是&#34;已禁用&#34;。关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

它不会删除后退按钮行为 - ListView的重新排序模式是以这样的方式设计的,当你点击后退按钮时, ListView 会离开重新排序模式。

我认为问题是您使用ReorderMode = ListViewReorderMode.Enabled启动 ListView - 所以第一次,当您点击后退按钮时,它会退出重新排序模式,下一个后退按钮按下工作normaly。

解决方案可能是在某些情况下启用重新排序模式 - 例如当用户持有ListView时:

private void List_Hold(object sender, HoldingRoutedEventArgs e) 
{ 
     (sender as ListView).ReorderMode = ListViewReorderMode.Enabled; 
}

MessageDialog 相似的情况 - 在您显示之后,后退按钮将关闭它,并且不会触发您的后退键事件。