在MVVM项目中使用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>
您的ZoomedInView
和ZoomedOutView
都需要有ScrollViewer.IsHorizontalScrollChainingEnabled="False"
才能正常滚动。
在页面的codeehind中(或使用附加的属性),使用以下代码处理ViewChangeStarted
事件:
private void zoomyThingWoo_ViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e)
{
if (e.SourceItem.Item != null)
{
e.DestinationItem.Item = e.SourceItem.Item;
}
}
就是这样。文档听起来SemanticZoom
只适用于实现ISemanticZoomInfo的任何两个控件,但它没有。
我向Redmond的XAML团队提出了一个文档错误。