C# Windows Phone容器内容更改阶段始终为0
在WinRT WP8.1应用程序上使用列表视图: 我正试图在ListView上使用ContainerContentChanged事件-C# Windows Phone容器内容更改阶段始终为0,c#,windows,windows-runtime,windows-phone-8.1,winrt-xaml,C#,Windows,Windows Runtime,Windows Phone 8.1,Winrt Xaml,在WinRT WP8.1应用程序上使用列表视图: 我正试图在ListView上使用ContainerContentChanged事件- private void ListOnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) { var viewer = args.ItemContainer.ContentTemplateRoot as View;
private void ListOnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
{
var viewer = args.ItemContainer.ContentTemplateRoot as View;
if (viewer == null)
{
return;
}
if (args.InRecycleQueue)
{
viewer.ClearData();
}
else if (args.Phase == 0)
{
viewer.ShowPlaceholder(args.Item as ViewModel);
args.RegisterUpdateCallback(this.ContainerContentChangingDelegate);
}
else if (args.Phase == 1)
{
// Load
args.RegisterUpdateCallback(this.ContainerContentChangingDelegate);
}
else if (args.Phase == 2)
{
// Load more
args.RegisterUpdateCallback(this.ContainerContentChangingDelegate);
}
else if (args.Phase == 3)
{
// Show images
}
args.Handled = true;
}
我遇到的问题是,当滚动查看更多项目时,ContainerContentChangingEventArgs上的Phase属性始终为0
(对于在初始视图中加载的项目,所有这些都可以正常工作-只有当我开始滚动时,才不会更新超过其占位符的项目
知道为什么hase属性不会更新吗?注册更新回调时,需要指定阶段号 您的代码应该如下所示:
private void ListOnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
{
var viewer = args.ItemContainer.ContentTemplateRoot as View;
if (viewer == null)
{
return;
}
if (args.InRecycleQueue)
{
viewer.ClearData();
}
else if (args.Phase == 0)
{
viewer.ShowPlaceholder(args.Item as ViewModel);
args.RegisterUpdateCallback(1, this.ContainerContentChangingDelegate);
}
else if (args.Phase == 1)
{
// Load
args.RegisterUpdateCallback(2, this.ContainerContentChangingDelegate);
}
else if (args.Phase == 2)
{
// Load more
args.RegisterUpdateCallback(3, this.ContainerContentChangingDelegate);
}
else if (args.Phase == 3)
{
// Show images
}
args.Handled = true;
}