سؤال

I'm trying to implement the following "start screen" interface for my Windows Store App.

enter image description here

I've figured a Gridview would be the component to use.

How do i display different type of items in a GridView?

Is this a good approach:

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

And Class

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();
    }
}
هل كانت مفيدة؟

المحلول

If you are targeting Windows 8.1 or higher - you could use the Hub control. That way you can avoid having to specify groups of items for your GridView, but implementing a DataTemplateSelector and setting it as a ItemTemplateSelector property of the GridView is the way to have items based on different templates.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top