我不明白为什么以下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>
答案 0 :(得分:0)
在您向我发送项目文件后,我发现您在PortfolioRepository.cs类中只添加了第一个投资组合实体
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" });
在上述更改后,输出如下所示