C# 在windows phone 8中滚动到底部时,将更多项目加载到LonListSelector中
我是windows phone开发新手,在windows phone 8中滚动到底部时,我尝试将更多项目加载到LonListSelector中 我使用这段代码,但scrollViewer抛出空值异常C# 在windows phone 8中滚动到底部时,将更多项目加载到LonListSelector中,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我是windows phone开发新手,在windows phone 8中滚动到底部时,我尝试将更多项目加载到LonListSelector中 我使用这段代码,但scrollViewer抛出空值异常 ScrollViewer scrollViewer; private void Mylist_Loaded(object sender, RoutedEventArgs e) { //get the ScrollViewer from the ListBox scrollViewe
ScrollViewer scrollViewer;
private void Mylist_Loaded(object sender, RoutedEventArgs e)
{
//get the ScrollViewer from the ListBox
scrollViewer = GetScrollViewer(this.MyLongListSelector);
//attach to custom binding to check if ScrollViewer verticalOffset property has changed
var binding = new Binding("VerticalOffset") { Source = scrollViewer };
var offsetChangeListener = DependencyProperty.RegisterAttached(
"ListenerOffset",
typeof(object),
typeof(UserControl),
new PropertyMetadata(OnScrollChanged));
scrollViewer.SetBinding(offsetChangeListener, binding);
}
// method to pull out a ScrollViewer
public static ScrollViewer GetScrollViewer(DependencyObject depObj)
{
if (depObj is ScrollViewer) return depObj as ScrollViewer;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
var child = VisualTreeHelper.GetChild(depObj, i);
var result = GetScrollViewer(child);
if (result != null) return result;
}
return null;
}
public void OnScrollChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
//We have to check if the values are 0.0 because they are both set to this when the scrollviewer loads
if ((scrollViewer.ScrollableHeight <= scrollViewer.VerticalOffset)
&& (scrollViewer.ScrollableHeight != 0.0 && scrollViewer.VerticalOffset != 0.0))
{
//The ScrollBar is at the bottom, load more results.
}
}
ScrollViewer;
已加载私有void Mylist_(对象发送方,路由目标)
{
//从列表框中获取ScrollViewer
scrollViewer=GetScrollViewer(this.MyLongListSelector);
//附加到自定义绑定以检查ScrollViewer verticalOffset属性是否已更改
var binding=new binding(“VerticalOffset”){Source=scrollViewer};
var OffsetAngelistener=DependencyProperty.RegisterAttached(
“ListenerOffset”,
类型(对象),
类型(用户控制),
新属性元数据(OnScrollChanged));
scrollViewer.SetBinding(offsetChangeListener、binding);
}
//方法来拉出ScrollViewer
公共静态ScrollViewer GetScrollViewer(DependencyObject depObj)
{
如果(depObj是ScrollViewer),则返回depObj作为ScrollViewer;
for(int i=0;i