在gridview项目模板中,是否可以拥有多个模板?在我的屏幕中,我在GridView控件的一个部分中有一组图标。我想让其中一个图标具有更大的尺寸。我怎么能实现它。
<GridView>
<GridView.ItemTemplate>
<DataTemplate>
<Grid/>
<DataTemplate/>
<GridView.ItemTemplate/>
<GridView/>
在此模板中,网格的尺寸igive将对所有元素保持相同。我如何自定义它以使项目的onne具有不同维度的网格。
答案 0 :(得分:2)
是的,你可以。你需要一个DataTemplateSelector。您可以在网格/列表中为所选对象选择适当的模板。
选择器示例:
class TemplateSelectorMyPage : DataTemplateSelector
{
public DataTemplate NormalIconTemplate { get; set; }
public DataTemplate BigIconTemplate { get; set; }
protected override DataTemplate SelectTemplateCore( object item, DependencyObject container )
{
var uiElement = container as UIElement;
if( uiElement == null )
{
return base.SelectTemplateCore( item, container );
}
if ( item is BigIconItem )
{
return BigIconTemplate;
}
else if ( item is NormalIconItem )
{
return NormalIconTemplate;
}
return base.SelectTemplateCore( item, container );
}
在XAML中:
<Page.Resources>
<local:TemplateSelectorMyPage x:Key="mySelector"
BigIconTemplate="{StaticResource myBigIconTemplate}"
NormalIconTemplate="{StaticResource myNormalIconTemplate}">
</local:TemplateSelectorBusinessPage>
</Page.Resources>
在网格XAML中:
<GridView
x:Name="itemGridView"
ItemTemplateSelector="{StaticResource mySelector}"