UWP - 将多个网格视图绑定到列表列表

时间:2017-03-25 02:02:13

标签: c# xaml uwp

我对如何实现这一点感到有点困惑。情况就是这样。我有一个对象集合本身就有一个对象集合。我想为第一个集合中的每个对象创建一个新的网格视图,该对象将使用第二个对象中的集合作为其源。

例如。在我的视图模型中,我有类似的东西

public ObservableCollection<ApiResponse> NewsStories

其中ApiResponse定义为

public class ApiResponse
{
    public List<Article> Articles { get; set; }
}

我的xaml之前我把这个列表列为

<GridView ItemsSource="{Binding Articles}"
        ItemTemplate="{StaticResource GridViewTemplate }"
        IsItemClickEnabled="False"
        IsSwipeEnabled="False"
        CanDragItems="False"
        SelectionMode="Single"
        />

我能够绑定到一个api响应,并看到网格视图显示该响应的所有文章。但现在我要列出一份清单,我不确定如何继续。我尝试将其封装在列表视图中,但无济于事。

1 个答案:

答案 0 :(得分:0)

我想我可能已经弄明白了。首先在我的xaml中我有类似

的东西
<GridView
        ItemsSource="{Binding NewsStories}"
        IsItemClickEnabled="False"
        CanDragItems="False"
        SelectionMode="None"
        ItemTemplate="{StaticResource ImageTextTemplate }">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid Orientation="Vertical"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
    </GridView>

在我的页面资源中,我有

<Page.Resources>
    <DataTemplate x:Key="ArticleTemplate"  x:DataType="data:Article">           
            <StackPanel Orientation="Vertical" Width="180" Height="240" >
             <!-- stuff here -->
            </StackPanel>
        </StackPanel>

    </DataTemplate>

    <DataTemplate x:Key="ImageTextTemplate" x:DataType="data:ApiResponse">          
            <GridView ItemsSource="{Binding Articles}"
                ItemTemplate="{StaticResource ArticleTemplate}"                    
                Header="{Binding Source}" />
    </DataTemplate>

</Page.Resources>