我在XAML中定义了我的ListBox:
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.ScrollChanged="OnScrollChanged" <- I want to create onScrollChanged event
Grid.Row="0">
...
</ListBox>
然后在我的cs文件中,我定义了这个事件:
private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
var scrollViewer = (ScrollViewer)sender; //ERROR
if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight)
MessageBox.Show("This is the end");
}
我试图检测用户何时滚动到ListBox的最底部。但是我得到的错误是ListBox无法转换为Scrollviewer。我如何获得滚动查看器?
由于
答案 0 :(得分:1)
在XAML中的ScrollViewer
周围添加ListBox
,然后从那里订阅该活动。
<ScrollViewer ScrollChanged="OnScrollChanged">
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Grid.Row="0" />
</ScrollViewer>
代码隐藏可以保持不变。
在您当前的代码中,您尝试将ListBox
(“发件人”)转换为ScrollViewer
,但它无法执行此操作,因此会抛出异常。