在XAML GridView(Win8/Metro)中水平订购商品

ser*_*ous 4 xaml gridview microsoft-metro windows-8

如何在XAML中对GridView水平项进行排序?可悲的是,我找不到实现这一目标的方法.关键字"方向"不可用.这是我目前的GridView:

            <GridView x:Name="TestDataBinding"
                HorizontalContentAlignment="Left"
                VerticalContentAlignment="Top"
                SelectionMode="None"
                ItemsSource="{Binding}"
                ItemTemplateSelector="{StaticResource itemTemplateSelector}"
                Margin="0,60,0,0"
                Width="1100" Height="540"
            />
Run Code Online (Sandbox Code Playgroud)

另一种方式可能是"VariableSizedWrapGrid".但是这不能用于通过"ItemsSource"(和ItemTemplateSelector)创建Items.

Jer*_*xon 11

抱歉,我不得不对您的评论提出异议,即使用VariableSizedWrapGrid无法做到这一点.它当然可以:

<GridView>
    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <VariableSizedWrapGrid Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
    <x:String>One</x:String>
    <x:String>Two</x:String>
    <x:String>Three</x:String>
    <x:String>Four</x:String>
</GridView>
Run Code Online (Sandbox Code Playgroud)

我不得不承认VariableSizedWrapGrid不能用于通过ItemsSource创建项目.它肯定可以.WrapGrid和VariableSizedWrapGrid基本相同.WrapGrid的重量略轻,因为它不支持列和行跨越.


Jim*_*eil 5

添加ItemsPanelTemplate以控制项目的排列方式,例如,

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapGrid Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</GridView.ItemsPanel>
Run Code Online (Sandbox Code Playgroud)