我正在编写一个 Windows 商店应用程序,主页是分组项目的 GridView。我已经设法获取了GridView不同瓦片的模板,但问题如下:
我已将 ItemsSource 绑定到包含 12 个项目的 viewModel 集合。有两个不同的问题:首先,我怎样才能使 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);
}
}
谢谢。