2017-07-01 52 views
0

我有一个控制来管理FlipView(flipView),我想用一个列表框(subMenuList)我的内容之间进行导航同步的SelectedIndex。由于产品所有者有完美的需求,我在另一个ListBox(shortcutList)控制FlipView的第一个项目,该项目也绑定到FlipView的SelectedIndex。为什么UWP Flipview不会翻转到第二项?

警告:列出的一些项目被压缩成模拟快捷键Flipview内容。

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

  • 使用鼠标:在第一次点击,我可以去第1页,当我翻转回shortcutList,我不能去第一页,但我可以去其他地方。然后,当我再次翻转到shortcutList时,我可以再次转到第1页等等!
  • 采用触摸:我可以点击进入页面1,只要我想,我永远达不到我的第一页,但我可以去别的地方。

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

我希望有人能告诉我为什么UWP Flipview不会翻转到第二项?并感谢尝试帮助我找到问题。

回答

1

问题是该项目已处于选定状态,因此您无法再选择它 - 至少选择它不会执行任何操作,因为没有选择更改事件,因此绑定不会传播任何更改。为了证明这一点 - 如果跳转到第4页,则会发生同样的情况,请翻回第一页并再次单击第4页。

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

1

我也COMMITED一个肮脏的修复上Github使用Martin Zikmund

方向如何解决这个问题?我认为你将不得不使用代码。这个XAML 解决方案虽然几乎可行,但相当脆弱。 将有三个 简单的按钮,并在他们的点击处理程序以取代FlipContent0Control列表框最简单的方法导航到相应的页面 。

Jawahar

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

以下post
所以,三个步骤来解决:

  1. FlipContent0Control替换SelectedIndex每个ListBoxItem内画布上Tapped事件。
  2. 提供点击事件以提高目标索引以在FlipView中选择。
  3. 在事件的方法处理程序中添加Task.Delay(100)TargetedIndexChanged
相关问题