【发布时间】:2015-01-30 12:43:58
【问题描述】:
我有一个 Windows 8.1 应用程序,其 GridView 绑定到自定义(可排序、去重)可观察集合。在这个集合中,我做了一些重过滤并为每个项目设置一个 IsHidden 标志。
在项目的数据模板中,如果 IsHidden 标志设置为 true,则存在使项目折叠的条件。
<Grid Width="160" Height="280" Visibility="{Binding IsHidden, Converter={StaticResource InvertedBooleanToVisibilityConverter}}">
此方法在 Windows Phone 8.1 XAML 中有效,使项目从 ListView 中消失,但在 Windows 8.1 GridView 中无效。 Windows 8.1 的问题是,当我将集合中的一个项目设置为隐藏时,id 从GridView 中消失但留下一个空白的地方,因此GridView 中有一个间隙。
关于如何解决它的任何想法?可能是相同的 XAML 样式编辑?
这是重现问题的最小解决方案:https://dl.dropboxusercontent.com/u/73642/gv.zip
我尝试将项目的宽度和高度绑定到隐藏标志,并在项目隐藏时将其设置为 0,但没有帮助,GridView 中仍然存在差距。
更新:一种解决方法是过滤实际绑定的集合,但由于某些业务需求,这是不可能的。
【问题讨论】:
-
你确定是
Visibility.Collapsed?因为它看起来像Visibility.Hidden(你肯定知道difference)。 -
是的,我确定,winrt中没有Visibility.Hidden
-
您使用什么作为 GridView.ItemsPanel?
标签: c# xaml windows-runtime winrt-xaml windows-8.1