【发布时间】:2013-04-29 17:36:17
【问题描述】:
我正在编写一个 Windows 商店应用程序,主页是分组项目的 GridView。 我已经设法获得了 GridView 不同图块的模板, 但问题如下:
我已将 ItemsSource 绑定到包含 12 个项目的 viewModel 集合。 有2个不同的问题: 首先,我怎样才能使 GridView 始终不显示最后一个或两个项目,这样总有一个或两个缺失的图块,如图所示,尽管有界中有更多项目的“空间”收藏。
其次,我将 ItemTemplateSelector 用于基于索引的项目的不同模板。 我的设计是在最后一项中我需要选择一个没有图像的模板(例如)。 如何获取 GridView 中的最后一个可见项?
这是我创建不同大小的瓷砖的代码:
protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item)
{
try
{
IIndexable viewModel = item as IIndexable;
element.SetValue(Windows.UI.Xaml.Controls.VariableSizedWrapGrid.ColumnSpanProperty, viewModel.Index == 0 ? 2 : 1);
element.SetValue(Windows.UI.Xaml.Controls.VariableSizedWrapGrid.RowSpanProperty, viewModel.Index == 0 ? 2 : 1);
}
catch
{
element.SetValue(Windows.UI.Xaml.Controls.VariableSizedWrapGrid.ColumnSpanProperty, 1);
element.SetValue(Windows.UI.Xaml.Controls.VariableSizedWrapGrid.RowSpanProperty, 1);
}
finally
{
base.PrepareContainerForItemOverride(element, item);
}
}
谢谢。
【问题讨论】:
标签: c# xaml gridview windows-runtime windows-store-apps