SemanticZoom-如何保持两个ListView控件的选择同步



在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>

您的ZoomedInViewZoomedOutView都需要有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团队提出了一个文档错误。

最新更新