首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两层向下显示数据

从两层向下显示数据
EN

Stack Overflow用户
提问于 2014-06-04 06:59:16
回答 1查看 237关注 0票数 0

我有以下类,这些类包含下一级的ObservableCollections:

代码语言:javascript
复制
Draw
ObservableCollection<Round>();

Round
ObservableCollection<Formation>();

Formation

所以抽签是由圆圈组成的,圆圈是由编队组成的。

我有一个页面,它有一个按钮来创建随机抽签,我现在让它调用另一个类,它返回一个抽签:

代码语言:javascript
复制
this.defaultViewModel[DrawName] = RandomDraw.generate();

我没有问题将一个ListView绑定到圆圈和显示圆形信息,但我如何显示单独的编队?这就是我目前正在做的事情,我并不指望能够通过绑定到编队来展示事物,但是我如何访问它呢?

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 07:26:46

您应该看看分层数据模板,这些模板由WPF TreeView控件而不是ListViews使用。它们自然适合显示分层数据。当然,与任何WPF控件一样,您可以使用样式和模板完全自定义它们的外观。以下是一些很好的参考资料:

如何:使用TreeView显示分层数据

WPF中的分层数据库

但是,如果您想继续使用ListViews,那么一种方法就是在父ListVIew中嵌套另一个容器控件。ObservableCollections由特定的WPF元素(如面板)自动处理。在您的示例中,您可以将第二个TextBlock替换为另一个ListView,使用与第一个类似的ItemTemplate。它也可以是任何类似集合的面板元素,比如StackPanel。

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24031007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档