GroupStyle HidesIfEmpty中是否有错误?

时间:2014-06-25 00:06:46

标签: debugging winrt-xaml windows-phone-8.1

我有一个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行为,因此这不是问题。

1 个答案:

答案 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);
}

这对我的情况有帮助。