Xaml metro应用程序中的ListView无法获取其垂直滚动条

Xaml metro应用程序中的ListView无法获取其垂直滚动条,xaml,listview,windows-8,microsoft-metro,scrollbar,Xaml,Listview,Windows 8,Microsoft Metro,Scrollbar,我对Windows应用商店(又称Metro)应用程序XAML没有经验,所以我可能忽略了一些简单的东西,但根据书籍和示例,垂直滚动条是ListView控件的自然部分,除非明确禁用,否则当ListView中有不可见项时,将显示垂直滚动条 但就我的应用程序而言,它是开启的。我有一个典型的列表/详细信息页面,在左窗格中显示项目-它们显示良好,带有滚动条,在右窗格中显示所选项目的详细信息。所选项目包含子项目的集合,如果有许多子项目,则应使用滚动条显示这些子项目。我有一个简单的ListView定义:

我对Windows应用商店(又称Metro)应用程序XAML没有经验,所以我可能忽略了一些简单的东西,但根据书籍和示例,垂直滚动条是ListView控件的自然部分,除非明确禁用,否则当ListView中有不可见项时,将显示垂直滚动条

但就我的应用程序而言,它是开启的。我有一个典型的列表/详细信息页面,在左窗格中显示项目-它们显示良好,带有滚动条,在右窗格中显示所选项目的详细信息。所选项目包含子项目的集合,如果有许多子项目,则应使用滚动条显示这些子项目。我有一个简单的ListView定义:

            <ListView 
            x:Name="itemCollection"
            Grid.ColumnSpan="1" 
            SelectionChanged="ItemListView_SelectionChanged"
            ItemsSource="{Binding Elements}" 
            ItemTemplate="{StaticResource Custom80ItemTemplate}" />

奇怪的是,我从来没有看到这个列表的滚动条。只有当我显式地将其模式设置为“可见”时,我才能看到一个滚动条,但没有任何东西可以滚动它


显然,程序认为整个列表都是可见的,所以滚动条是不必要的,但什么能让它做出这样的判断呢?

尝试将可见性设置为自动

我终于解决了这个问题。与大多数此类问题一样,错误是愚蠢的:拥有此ListView的网格控件有一个额外的(错误的)行定义,该行定义的Height属性标记为星号,即占用所有剩余空间。但是ListView使用的行的高度标记为“自动”,因此它扩展到其项目的整个大小,并且从未激活其垂直滚动条