2017-07-01 92 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
相關問題