Windows 8.1 商店应用中网格视图内的多个项目模板
Multiple item template inside grid view in Windows 8.1 store app
在一个 gridview 项模板中,是否可以有多个模板?在我的屏幕上,我在 GridView 控件的单个部分中有一组图标。我希望有一个图标具有更大的尺寸。我怎样才能实现它。
<GridView>
<GridView.ItemTemplate>
<DataTemplate>
<Grid/>
<DataTemplate/>
<GridView.ItemTemplate/>
<GridView/>
在此模板中,网格的维度对于所有元素都将保持不变。我如何自定义它,以便其中一个项目具有不同尺寸的网格。
是的,你可以。你需要一个DataTemplateSelector。您可以 select grid/list 中 selected 对象的适当模板。
select 或:
的示例
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}"
在一个 gridview 项模板中,是否可以有多个模板?在我的屏幕上,我在 GridView 控件的单个部分中有一组图标。我希望有一个图标具有更大的尺寸。我怎样才能实现它。
<GridView>
<GridView.ItemTemplate>
<DataTemplate>
<Grid/>
<DataTemplate/>
<GridView.ItemTemplate/>
<GridView/>
在此模板中,网格的维度对于所有元素都将保持不变。我如何自定义它,以便其中一个项目具有不同尺寸的网格。
是的,你可以。你需要一个DataTemplateSelector。您可以 select grid/list 中 selected 对象的适当模板。
select 或:
的示例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}"