导航离开后,ISupportIncrementalLoading不会停止

时间:2015-05-02 08:25:39

标签: c# xaml windows-phone-8 infinite-scroll

我突然发现了一个实现ISupportIncrementalLoading的集合的奇怪行为。 假设我们有一个主页面,其中ISupportIncrementalLoading集合绑定到ListView。我们还有另一个页面可以导航到。 导航到主页面时,ISupportIncrementalLoading开始加载项目,直到ListView认为它足够。我导航到新页面之前,ListView加载了所需的所有项目。 我的预期行为:ListView停止加载新项目,因为页面现在不可见。 真实行为:ListView继续无休止地加载项目,即使离开页面也是如此。并且它会一直停止,直到获得HasMore == false。 有人能帮忙吗?这绝对是错误的行为。

PS

如果我在导航时,在ViewModel中将集合设置为null,然后在返回时将其恢复 - 它接缝有帮助,但我觉得这样做太多了。

这是我的基本ISupportIncrementalLoading集合的代码:

<?php
session_start();

$contact=$_POST['contact'];
$phone=$_POST['telephone'];
$email=$_POST['email'];
$msg=$_POST['message'];

$to="webform@xxx.com";
$subject="Contact Form";
$from=$email;
$message .= '<table border="1px" width="50%" style="border:1px black solid;margin:0px auto">';
$message .= '<tr><th colspan="2" style="text-align:center">Contacts Information</th></tr>';
$message .= '<tr><td>Name :- </td><td>'.$contact.'</td></tr>';
$message .='<tr> <td>Phone No. :- </td><td>'.$phone.'</td></tr>';
$message .= "<tr><td>Email :- </td><td>" . $email . "</td></tr>";
$message .= "<tr><td>Message :- </td><td>" . $msg. "</td></tr>";
$message .= "</table>";

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";

mail($to, $subject, $message, $headers);

header("Location: sent.html");

1 个答案:

答案 0 :(得分:0)

我刚刚找到另一种方法,添加额外的bool字段isStopped方法Start,ForceStop将其设置为false / true。获取类似

的HasMoreItems时使用此值

bool HasMoreItems {get {return!isStopped&amp;&amp; DetermineIfHasMore()};}

只需调用那些方法,我就可以停止或继续加载相同的集合生成器。

此处提供了另一种方式https://social.msdn.microsoft.com/Forums/ru-RU/be17357d-faac-4f49-acf4-e916fcdace9d/w81isupportincrementalloading-doesnt-stop-after-navigating-away?forum=winappswithcsharp