为什么UWP Flipview没有翻到第二项?

时间:2017-07-01 18:01:00

标签: c# synchronization uwp-xaml issue-tracking flipview

我有一个控件来管理FlipView(flipView),我希望将SelectedIndex与ListBox(subMenuList)同步以在我的内容之间导航。由于产品所有者有很好的要求,我在FlipView的第一项控件中有另一个ListBox(shortcutList),它也绑定到FlipView的SelectedIndex。

警告:折叠列表的某些项目以模拟Flipview内容的快捷方式。

这些控件完全同步 FlipView的第二项:

  • 使用鼠标:在第一次点击时,我可以转到第1页,当我回到shortcutList时,我无法转到第1页,但我可以去其他地方。然后,当我再次回到shortcutList时,我可以再次访问第1页,等等!
  • 使用触摸:只要我愿意,我可以点按第1页,我从未到达第一页,但我可以去其他任何地方。

我提取项目的特定部分以重现Github上的用例,这样每个人都可以理解我的意思。

我希望有人可以告诉我为什么UWP Flipview没有翻到第二项?并且感谢我试着帮助我找到问题。

2 个答案:

答案 0 :(得分:1)

问题是该项目已处于选定状态,因此您无法再次选择它 - 至少选择它不会做任何事情,因为没有选择更改事件,因此SelectedIndex绑定不会。传播任何变化。为了证明这一点 - 如果你跳到第4页,翻到第一页并再次点击第4页,就会发生同样的事情。

如何解决这个问题?我想你将不得不使用代码。这个XAML解决方案虽然几乎可行但非常脆弱。最简单的解决方案是使用三个简单的按钮替换ListBox中的FlipContent0Control,并在Click处理程序中导航到相应的页面。要获得更好的方法,您应该尝试更改应用程序以使用MVVM设计模式。

答案 1 :(得分:1)

我还使用Github

的指示对Martin Zikmund提出了一个脏修复
  

如何解决这个问题?我想你将不得不使用代码。这个XAML   解决方案虽然几乎工作很脆弱。最简单的解决方案   将用三个替换FlipContent0Control中的ListBox   简单的按钮和他们的点击处理程序导航到适当的   页。

以及来自Jawahar

的提示
  

这是因为你的手指仍在触摸控件,所以flipview   不能动画。所以我在导航之前做了一个小小的休息。通过   用户释放手指的时间,它可以工作!!!

在以下post中 那么,要解决三个步骤:

  1. SelectedIndex中的FlipContent0Control替换为每个Tapped内部画布上的ListBoxItem事件。
  2. 提供点击事件以提升目标索引,以便在FlipView
  3. 中进行选择
  4. 在事件Task.Delay(100)
  5. 的方法处理程序中添加TargetedIndexChanged