SemanticZoom - 如何在选择同步中保留两个ListView控件?

时间:2013-07-16 18:59:28

标签: windows-store-apps winrt-xaml

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

2 个答案:

答案 0 :(得分:0)

您的ZoomedInViewZoomedOutView都需要ScrollViewer.IsHorizontalScrollChainingEnabled="False"才能正确滚动。

答案 1 :(得分:0)

在页面的代码隐藏中(或使用附加属性),使用以下代码处理ViewChangeStarted事件:

    private void zoomyThingWoo_ViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e)
    {
        if (e.SourceItem.Item != null)
        {
            e.DestinationItem.Item = e.SourceItem.Item;
        }
    }

就是这样。该文档听起来像SemanticZoom只适用于任何两个实现ISemanticZoomInfo但没有实现的控件。

我在Redmond的XAML团队中提出了一个文档错误。