GridView中的不同项目

时间:2014-05-13 16:54:06

标签: c# xaml windows-runtime winrt-xaml winrt-component

我正在尝试为我的Windows应用商店应用实现以下“开始屏幕”界面。

enter image description here

我认为Gridview将是要使用的组件。

如何在GridView中显示不同类型的项目?

这是一个好方法吗?

<GridView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <ContentControl Content="{Binding Converter={StaticResource local:ContentTypeToControlConverter}}" />
                    </Grid>
                </DataTemplate>
            </GridView.ItemTemplate>

和班级

public class ContentTypeToControlConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (value != null)
        {
            if (value is MenuItem)
            {
                return new MenuItemControl();
            }
            else if (value is RecentViewItem)
            {
                return new RecentItemControl();
            }
        }





   return null;
    }



 public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

1 个答案:

答案 0 :(得分:1)

如果您的目标是Windows 8.1或更高版本,则可以使用Hub控件。这样,您就可以避免为GridView指定项目组,但是实现DataTemplateSelector并将其设置为ItemTemplateSelector的{​​{1}}属性是方法基于不同模板的项目。