如何在UWP windows 10 apps C中显示其他对象列表中的对象列表

时间:2017-05-16 00:22:24

标签: uwp windows-10-universal uwp-xaml

我正在开发一个应用程序,该应用程序使用对象列表以及对象内部的不同对象列表。我目前正在使用flipview类显示对象的初始列表,以刷过初始对象列表。但是我似乎无法在初始列表中显示每个对象内的对象列表。例如,如果我有一个名为“月”的对象列表,可以刷过月份。我想在“Month”对象中显示名为“Days”的对象列表。

以下是我的示例XAML代码:

 <Grid Background="{ThemeResource SystemColorWindowColor}">
    <FlipView Name="MonthFlipView" HorizontalAlignment="Left" Height="585" Margin="30,23,0,0"
              VerticalAlignment="Top" Width="295" ItemsSource="{x:Bind Months}">
        <FlipView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </FlipView.ItemsPanel>

        <FlipView.ItemTemplate>
            <xmal:DataTemplate x:DataType="data:Month">
                <StackPanel Orientation="Vertical">
                    <TextBlock FontSize="18" Foreground="White" Margin="0,25" Text="{x:Bind year }"/>
                    <TextBlock FontSize="18" Foreground="White" Margin="0,25" Text="{x:Bind name }"/>
                    <TextBlock FontSize="18" Foreground="White" Margin="0,25" Text="{x:Bind season }"/>
                    <TextBlock FontSize="18" Foreground="White" Margin="0,25" Text="{Binding Source= }"/>
                </StackPanel>
            </xmal:DataTemplate>
        </FlipView.ItemTemplate>
    </FlipView>

</Grid>

当我尝试绑定到对象内部的对象列表时,对象列表不会显示为绑定的选项。我该如何前进?

1 个答案:

答案 0 :(得分:0)

给出以下对象:

public class Month
{
    public IEnumerable<int> Days { get; set; }
    public string Name { get; set; }
}

并且您的viewmodel有一个Month对象列表,然后您可以直接绑定到FlipView ItemTemplate中的Days属性

<FlipView Name="MonthFlipView" ItemsSource="{x:Bind Months}">
    <FlipView.ItemTemplate>
        <DataTemplate x:DataType="data:Month">
            <StackPanel>
                <TextBlock Text="{x:Bind Name}"/>
                <GridView ItemsSource="{x:Bind Days}">
                    <GridView.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding}"/>
                        </DataTemplate>
                    </GridView.ItemTemplate>
                </GridView>
            <StackPanel>
        </DataTemplate>
    </FlipView.ItemTemplate>
</FlipView>