我有以下类,这些类包含下一级的ObservableCollections:
Draw
ObservableCollection<Round>();
Round
ObservableCollection<Formation>();
Formation所以抽签是由圆圈组成的,圆圈是由编队组成的。
我有一个页面,它有一个按钮来创建随机抽签,我现在让它调用另一个类,它返回一个抽签:
this.defaultViewModel[DrawName] = RandomDraw.generate();我没有问题将一个ListView绑定到圆圈和显示圆形信息,但我如何显示单独的编队?这就是我目前正在做的事情,我并不指望能够通过绑定到编队来展示事物,但是我如何访问它呢?
<ListView
ItemsSource="{Binding Rounds}"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,9.5">
<TextBlock
Text="{Binding RoundNumber}"
TextWrapping="Wrap"
Pivot.SlideInAnimationGroup="1"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemTextBlockStyle}"
Margin="0,0,19,0"/>
<TextBlock
Text="{Binding Formations}"
TextWrapping="WrapWholeWords"
Pivot.SlideInAnimationGroup="2"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemContentTextBlockStyle}"
Margin="0,0,19,0"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>发布于 2014-06-04 07:26:46
您应该看看分层数据模板,这些模板由WPF TreeView控件而不是ListViews使用。它们自然适合显示分层数据。当然,与任何WPF控件一样,您可以使用样式和模板完全自定义它们的外观。以下是一些很好的参考资料:
如何:使用TreeView显示分层数据
WPF中的分层数据库
但是,如果您想继续使用ListViews,那么一种方法就是在父ListVIew中嵌套另一个容器控件。ObservableCollections由特定的WPF元素(如面板)自动处理。在您的示例中,您可以将第二个TextBlock替换为另一个ListView,使用与第一个类似的ItemTemplate。它也可以是任何类似集合的面板元素,比如StackPanel。
<ListView
ItemsSource="{Binding Rounds}"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,9.5">
<TextBlock
Text="{Binding RoundNumber}"
TextWrapping="Wrap"
Pivot.SlideInAnimationGroup="1"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemTextBlockStyle}"
Margin="0,0,19,0"/>
<!-- CHANGED CODE HERE -->
<ListView
ItemsSource="{Binding Formations}"
...>
<ListView.ItemTemplate>...</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>https://stackoverflow.com/questions/24031007
复制相似问题