我正在创建一个Windows 10 UWP应用程序。 我有一个GridView
<GridView x:Name="gv" Margin="8,20,8,8"
Grid.Row="1"
ItemClick="gv_ItemClick"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollMode="Enabled"
IsItemClickEnabled="True"
SizeChanged="GridView_SizeChanged"
SelectionMode="Single">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate>
<Grid >
<Image Source="{Binding thumbnailPath}"
Stretch="UniformToFill" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
由于里面已经有一个scrollviewer,我想触发这个scrollviewer的viewchanged事件。
我已经尝试过,
var scrollViewer = gv.GetFirstDescendantOfType<ScrollViewer>();
和
ScrollViewer scroll = FindFirstElementInVisualTree<ScrollViewer>(gv);
两者似乎都返回空引用! 我哪里错了?
答案 0 :(得分:3)
这个问题可以帮到你:
Detecting a scroll event in GridView (Windows 8)
您可以通过以下方式执行此操作:WinRT XAML Toolkit中的GetFirstDescendantOfType和GetDescendantsOfType扩展方法。
更新:
在同一个问题中,有一个很好的解决方法:
编辑GridView的模板,并查看XAML内部以查找 ScrollViewer是GridView的一个组件。
ScrollViewer有一个您可以订阅的ViewChanged事件。 现在每当滚动GridView时,都会触发此事件。
试试吧!