我有一个有大约200个联系人的ViewModel,我将它绑定到ListView
<Grid>
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>
</Grid>
如果有人可以解释ScrollViewers可见性背后的细节
,那将会很棒答案 0 :(得分:2)
ListView
控件已包含ScrollViewer
并根据项目数量实现滚动,无需将此控件包装在另一个ScrollViewer
中。您可以在包含所有Windows 10样式的generic.xaml文件中的第6219行的ListView
的默认ControlTemplate中仔细检查:
C:\ Program Files(x86)\ Windows Kits \ 10 \ DesignTime \ CommonConfiguration \ Neutral \ UAP \ 10.0.10240.0 \ Generic \ generic.xaml
因此,您只需从XAML片段中删除ScrollViewer
。
<Grid>
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
注意:当您使用ListView
时,我想您希望所有商品都堆叠在一起。如果您希望多列显示您的商品,请改用GridView
。