我有一个ContentPage
,它包含一个CollectionView
在另一个CollectionView
中。我的每个“Standings”对象都包含一个“StandingDetail”集合,我希望在排名网格的最右边一列中显示该集合。
...
<CollectionView ItemsSource="{Binding Standings}"
SelectionMode="None">
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical"
Span="1"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:ContestStandingView">
<Grid Padding="10"
ColumnDefinitions="25,*,*,*">
<Label Text="{Binding place}"
Grid.Column="0"/>
<Label Text="{Binding userName}"
Grid.Column="1"/>
<Label Text="{Binding creditsTotal}"
Grid.Column="2"/>
<CollectionView ItemsSource="{Binding StandingDetail}"
SelectionMode="None"
HeightRequest="100"
Grid.Column="3"
BackgroundColor="Red">
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical"
Span="1"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:StandingDetail">
<Grid Padding="10"
ColumnDefinitions="*,*"
BackgroundColor="Blue"
HeightRequest="50">
<Label Text="TestStatic"
Grid.Column="0"/>
<Label Text="{Binding detailName}"
Grid.Column="1"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
...
我添加了背景颜色来帮助我调试。我希望网格的右列是一个蓝色矩形,包含在一个红色矩形中,蓝色矩形中的文本,但输出如下所示。为什么蓝色栅格未渲染?
1条答案
按热度按时间w1e3prcc1#
您应该定义模型:
ContestStandingView
如下所示,如果您希望CollectionView与另一个CollectionView嵌套:然后将CollectionView的ItemSource赋值到代码隐藏(下面的示例)或您的ViewModel中,如下所示:
输出: