我遇到了如何整理数据的屏幕布局的问题。
我有一个具有属性A1和A2的对象A,可能包含一个对象B.
对象B具有属性B1,B2,B3以及对象C中的一个或多个的集合。
对象C包含属性C1,C2和C3
我希望布局为
A1 A2
或
A1 A2 B1 B2 B3 C1 C2 C3
或
A1 A2 B1 B2 B3 C1 C2 C3
C1 C2 C3
我尝试了以下Xaml,但无法让对象C多次出现。我创建了一个datatemplate
<TextBlock Text="{Binding Path=A1}" Grid.Column="0" />
<TextBlock Text="{Binding Path=A2}" Grid.Column="1" />
<StackPanel Orientation="Horizontal" Name="B" DataContext="{Binding Path=B}" Grid.Column="2">
<TextBlock Text="{Binding Path=B1}" />
<TextBlock Text="{Binding Path=B2}" />
<TextBlock Text="{Binding Path=B3}" />
<StackPanel Orientation="Horizontal" Name="C" DataContext="{Binding Path=C}">
<TextBlock Text="{Binding Path=C1}" />
<TextBlock Text="{Binding Path=C2}" />
<TextBlock Text="{Binding Path=C3}" />
</StackPanel>
</StackPanel>
</Grid>
并使用datatemplate使用listview显示数据,但只显示一行C数据。有关如何获得所需布局的任何建议吗?
约翰
答案 0 :(得分:0)
据推测(如果由于问题的清晰度不够而我必须做出的所有假设都是正确的),你想要这样:
<TextBlock Text="{Binding Path=A1}" Grid.Column="0" />
<TextBlock Text="{Binding Path=A2}" Grid.Column="1" />
<StackPanel Orientation="Horizontal" Name="B" DataContext="{Binding Path=B}" Grid.Column="2">
<TextBlock Text="{Binding Path=B1}" />
<TextBlock Text="{Binding Path=B2}" />
<TextBlock Text="{Binding Path=B3}" />
<ItemsControl ItemsSource="{Binding Path=C}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Name="C">
<TextBlock Text="{Binding Path=C1}" />
<TextBlock Text="{Binding Path=C2}" />
<TextBlock Text="{Binding Path=C3}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>