Различные элементы в GridView

Я пытаюсь реализовать следующий интерфейс «стартового экрана» для моего приложения Магазина Windows.

введите здесь описание изображения

Я полагал, что компонентом для использования будет 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();
    }
}

person Richard    schedule 13.05.2014    source источник
comment
То, что вы ищете, это DataTemplateSelector   -  person Flat Eric    schedule 13.05.2014


Ответы (1)


Если вы ориентируетесь на Windows 8.1 или выше, вы можете использовать Hub. Таким образом, вы можете избежать необходимости указывать группы элементов для вашего GridView, но реализация DataTemplateSelector и установка его в качестве свойства ItemTemplateSelector для GridView — это способ иметь элементы на основе разных шаблонов.

person Filip Skakun    schedule 13.05.2014