0

我不明白为什么以下 xaml 没有正确分组项目。以下代码为 DataContext 的 _Portfolios 属性中的每个项目创建一个组。但是,第一个程序项中填充了所有程序项,而第二个程序项中没有。

2013 年 6 月 16 日更新: _Portfolios 是页面 ViewModel 上的一种方法,它返回 IObservableCollection<Portfolio>。每个 Portfolio 都有一个名为 Programs 的属性,该属性返回 IObservableCollection<Program>,它也有一个 Name 属性。在我看来,这个 xaml 应该产生两个盒子:一个用于组合飞机,其中包含飞机,另一个用于海军,其中包含船只。可悲的是它没有:(

<GridView Grid.Row="1" ItemsSource="{Binding _Portfolios}">
    <GridView.ItemTemplate>
        <DataTemplate>
            <Border BorderBrush="{StaticResource ApplicationForegroundThemeBrush}" BorderThickness="1">
                <Grid>

                    <Grid.RowDefinitions>
                        <RowDefinition Height="40"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>

                    <TextBlock Text="{Binding Name}"></TextBlock>

                    <ListView Grid.Row="1" Grid.Column="1" ItemsSource="{Binding Programs}">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Name}"></TextBlock>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>    

                </Grid>


            </Border>

        </DataTemplate>
    </GridView.ItemTemplate>

</GridView>

在此处输入图像描述
在此处输入图像描述
在此处输入图像描述

4

1 回答 1

0

在您向我发送项目文件后,我发现在您的 PortfolioRepository.cs 类中您只是添加到第一个 Portfolio 实体

p1.Programs.Add(new entity.Program() { Id = 1, Name = "Battleship" });
p1.Programs.Add(new entity.Program() { Id = 2, Name = "Aircraft Carrier" });

将其更改为以下有效

p2.Programs.Add(new entity.Program() { Id = 1, Name = "Battleship" });
p2.Programs.Add(new entity.Program() { Id = 2, Name = "Aircraft Carrier" });

上述更改后,输出如下所示

在此处输入图像描述

于 2013-06-17T01:05:10.453 回答