Windows Phone XAML列表框,使用集合迭代集合

时间:2014-10-30 15:05:45

标签: c# xaml windows-phone-8 windows-phone

我遇到了一个我必须解决的问题 我有一个带有集合的ViewModel,因此这个集合包含类型"类别"的对象,每个类别都有一个"频道"的列表。 因此,我想显示类别的集合,并直接在每个类别的所有渠道列表的底部。

有些事情是这样的:

enter image description here

如何在Xaml中执行此操作?有数据绑定吗?

2 个答案:

答案 0 :(得分:1)

似乎你正在使用错误的控制来做这种事情。您应该使用LongListSelector,因为已经内置了分组。

以下是一个有效的例子:How to display data in a grouped list in LongListSelector for Windows Phone 8


启动Windows Phone 8的新闻应用程序,您可以看到LongListSelector Group正在运行。

答案 1 :(得分:0)

我之前试过这个,但它没有用!但现在它正在以这种方式工作!

 <ListBox x:Name="AllCategoriesList" ItemsSource="{Binding categories}" Margin="10,0">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="50"/>
                                        <RowDefinition Height="Auto"/>
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Text="{Binding name}" Grid.Row="0"></TextBlock>
                                    <ListBox ItemsSource="{Binding channels}" Grid.Row="1">
                                        <ListBox.ItemTemplate>
                                            <DataTemplate>
                                                <StackPanel>
                                                    <TextBlock Text="{Binding name}"></TextBlock>
                                                </StackPanel>
                                            </DataTemplate>
                                        </ListBox.ItemTemplate>
                                    </ListBox>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>