我有一个Windows Phone 8.1 WinRT应用程序。我使用SemanticZoom + ListView组合通过CollectionViewSource显示分组列表。 当我删除所有组中的所有项目(ObservableCollections)并开始将项目放回这些空组时,调试器会中断并显示“agip。*”在某处读取DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION;这曾经发生了一段时间,但现在有一个原因,我不知道我的应用程序只是退出和调试停止没有任何错误消息;这就是为什么我不记得确切的文件名。
我有两个问题:
1)如何让调试器再次工作,即显示“agip。*”某个页面,而不是只是默默地退出?
2)通过反复试验,我设法通过改变来追查原因
<ListView.GroupStyle><GroupStyle HidesIfEmpty="true"
到<ListView.GroupStyle><GroupStyle HidesIfEmpty="false"
。
瞧我的应用程序没有任何问题。这可能是WinRT中的一个错误吗?
PS:我可以通过转换器将组头可见性绑定到.items.count来实现HidesIfEmpty行为,因此这不是问题。
答案 0 :(得分:1)
1)如何让调试器再次工作,即显示&#34; agip。*&#34;什么页面,而不是只是默默地退出?
试试这个。打开Exception设置窗口:菜单Debug - &gt; Windows - &gt;例外设置。检查所有例外类别。 但是,我没有让它发挥作用。它只是打破了未处理的win32exceptions,没有知道它发生在哪里,也没有提供异常的任何细节,即使附加另一个Visual Studio实例来调试devenv.exe进程并处理所有异常。 / p>
2)通过反复试验,我设法通过更改&lt; ListView.GroupStyle&gt;&lt; GroupStyle HidesIfEmpty =&#34; true&#34;来跟踪原因。 to&lt; ListView.GroupStyle&gt;&lt; GroupStyle HidesIfEmpty =&#34; false&#34;。瞧我的应用程序没有任何问题。这可能是WinRT中的一个错误吗?
看起来这是一个错误。
我可以通过转换器将组头标题可见性绑定到.items.count来实现HidesIfEmpty行为,这样就不会出现问题。
这种方法在Windows 10上看起来并不好看,例如,组头在底部有一个边框。因此,隐藏TextBlock并不会完全隐藏组头。 (也许我做错了什么)。
我以不同的方式解决了这个问题。
清除分组集合的每个组后,尝试延迟。像这样:
foreach(var group in GroupsCollection)
{
group.Clear();
await Delay(1); // this is workaround
group.Add(newItem);
}
这对我的情况有帮助。