Windows runtime 是否在项目详细信息滚动查看器中嵌套WrapGrid/GridView?

Windows runtime 是否在项目详细信息滚动查看器中嵌套WrapGrid/GridView?,windows-runtime,winrt-xaml,Windows Runtime,Winrt Xaml,2012年9月17日更新:重申了问题并增加了娱乐步骤 我正在尝试将WrapGrid样式的图像库添加到ItemDetailPage。到目前为止,我发现实现这一点的唯一解决方案是创建组样式并使用DataTemplate选择器。在详细信息页面上这样做似乎有些过分,因为我需要为页面上的每个列创建一个类 我试图解决这个问题,如下所示,但GridView独立于我的ScrollViewer滚动,这是不可接受的 要在VS中重新创建默认网格应用程序,请执行以下操作: 将此属性添加到SampleDataItem /

2012年9月17日更新:重申了问题并增加了娱乐步骤

我正在尝试将WrapGrid样式的图像库添加到ItemDetailPage。到目前为止,我发现实现这一点的唯一解决方案是创建组样式并使用DataTemplate选择器。在详细信息页面上这样做似乎有些过分,因为我需要为页面上的每个列创建一个类

我试图解决这个问题,如下所示,但GridView独立于我的ScrollViewer滚动,这是不可接受的

要在VS中重新创建默认网格应用程序,请执行以下操作:

将此属性添加到SampleDataItem

// Add to SampleDataItem TODO: replace int with image url strings
private List<int> _subItems = null;
public List<int> SubItems
{
    get
    {
        if (_subItems == null)
        {
            _subItems = new List<int>();
            for (int i = 0; i < 50; i++)
                this._subItems.Add(i);
        }
        return this._subItems;
    }
    set { this.SetProperty(ref this._subItems, value); }
}
//添加到SampleDataItem TODO:用图像url字符串替换int
私有列表_子项=null;
公共列表子项
{
得到
{
如果(_子项==null)
{
_子项=新列表();
对于(int i=0;i<50;i++)
增加(i)项;
}
返回此.\u子项;
}
set{this.SetProperty(ref this._子项,值);}
}
在ItemDetailPage.xaml中,替换ScrollViewer中的RichTextColumns:

 <!--Fixed column layout, replaces RichTextColumns from template-->    
  <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="800"/>
            <ColumnDefinition Width="1400"/>
        </Grid.ColumnDefinitions>
        <StackPanel>
            <TextBlock Text="{Binding Title}"/>
            <Image x:Name="image" MaxHeight="480" Margin="0,20,0,10" Stretch="Uniform" Source="{Binding Image}"/>                                     
        </StackPanel>
        <GridView ScrollViewer.HorizontalScrollMode="Disabled"  VerticalAlignment="Top" ItemsSource="{Binding SubItems}"  Grid.Column="1" ItemTemplate="{StaticResource GridViewDataTemplate1}" >
        </GridView>
    </Grid>

最后添加以下数据模板

<DataTemplate x:Key="GridViewDataTemplate1">
    <Grid Background="Yellow" Width="200" Height="200"/>
</DataTemplate>

您可以通过将GridView的HorizontalScrollMode设置为禁用

<GridView ScrollViewer.HorizontalScrollMode="Disabled" />


然而,我敦促您考虑这里的最佳方法。如果GridView与每个视图不相关,请在单独的页面上显示它们。如果它们是相关的,则将它们分组为一组GridView。可以使用不同的样式设置组的项目的样式

将其设置为Disabled对我不起作用。我重申了我的问题,并提供了重新创建步骤。kbeal2k:我发现您不能将GridView放入ScrollViewer,但可以将许多可变大小的WrapGrids放入StackPanel