我突然发现了一个实现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");
答案 0 :(得分:0)
我刚刚找到另一种方法,添加额外的bool字段isStopped方法Start,ForceStop将其设置为false / true。获取类似
的HasMoreItems时使用此值bool HasMoreItems {get {return!isStopped&amp;&amp; DetermineIfHasMore()};}
只需调用那些方法,我就可以停止或继续加载相同的集合生成器。