在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>
答案 0 :(得分:0)
您的ZoomedInView
和ZoomedOutView
都需要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团队中提出了一个文档错误。