在MVVM項目中使用SemanticZoom
控件,我有兩個ListView
控件具有自定義樣式和麪板等,因此它們水平顯示,沒有分組或需要它。SemanticZoom - 如何讓兩個ListView控件同步選擇?
我將兩個都綁定到視圖模型中的CollectionViewSource
。
當我在縮小視圖中單擊某個項目時,它不會將焦點放到放大視圖中的該項目。
我該如何做到這一點?
編輯
添加XAML代碼:
<SemanticZoom>
<SemanticZoom.ZoomedInView>
<ListView
Style="{StaticResource HorizontalListViewStyle}"
SelectionMode="None"
ScrollViewer.IsHorizontalScrollChainingEnabled="False"
ItemsSource="{Binding BoardItems}"
ItemContainerStyle="{StaticResource ZoomedOutListViewItemContainerStyle}">
</ListView>
</SemanticZoom.ZoomedInView>
<SemanticZoom.ZoomedOutView>
<ListView x:Name="listView"
Style="{StaticResource HorizontalListViewStyle}"
SelectionMode="None"
ScrollViewer.IsHorizontalScrollChainingEnabled="False"
ItemsSource="{Binding BoardItems}"
ItemContainerStyle="{StaticResource ZoomedOutListViewItemContainerStyle}">
</ListView>
</SemanticZoom.ZoomedOutView>
</SemanticZoom>
它是兩個ListViews,一個用於縮小和一個放大?如果是這樣,你如何設置ZoomedOut項目源?在代碼背後?無論哪種情況,請確保您的ZoomedInView和Out視圖都具有'ScrollViewer.IsHorizontalScrollChainingEnabled =「False」'。 ScrollChaining已經被人們熟知。另外,如果綁定的數據源發生變化,我發現我需要重新設置ZoomedOutView的ItemsSource,否則當它執行引用相等性檢查時,這兩個項目可能會出現不同。 –
+1爲ScrollViewer技巧爲其他人的利益,我已閱讀有關。我告訴你,爲了生活而寫好大型XAML應用程序,我可以很好地獲得報酬,而且它永遠不會變得更輕鬆。 –
我要寫給Terry Adams,他在Build 2012上完成了一個會話,它應該可以工作。我相信,如果我們不大聲抱怨,那麼我們不能指望事情得到改善,無論這是一個錯誤,文檔問題,工具,錯誤,我花了幾個月的時間寫了解決方法。 –