如何动态显示ItemsControl,如父ItemsControl的Items?

问题描述

我在数据库中有两个表:sections表和exams表。一个部分(在“部分”表中)具有一个或多个考试(在“考试”表中)。

本节中的Foreach部分,我要显示部分名称,并在ItemsControl中显示该部分的考试名称。该图像可能会对其进行更多说明。

enter image description here

因此,我要从数据库中获取各节的列表,并将其用作ItemsControl的自定义模板的ItemsSource;一个ItemsControl将显示每个部分将在其自身下方的一个ItemsControl,这些项目将显示该部分的考试。

这是ItemsControl部分的模板

    <Style TargetType="ItemsControl" x:Key="ListSectionsItemsControl">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <ItemsPresenter/>
                </ControlTemplate>
            </Setter.Value>

        </Setter>

        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Label Content="{Binding}" VerticalContentAlignment="Center" FontSize="14" FontWeight="Bold"/>
                        <ItemsControl Name="AnalysesItemsTest" Style="{DynamicResource ListAnalysesItemsControl}"/>
                    </StackPanel>
                </DataTemplate>
            </Setter.Value>
        </Setter>

        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="3" Background="White"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>



    </Style>

对于考试,我还创建了ItemsControl模板

  <Style TargetType="ItemsControl" x:Key="ListAnalysesItemsControl">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <ItemsPresenter/>
                </ControlTemplate>
            </Setter.Value>

        </Setter>

        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <CheckBox VerticalContentAlignment="Center"/>
                        <Label Content="{Binding}" VerticalContentAlignment="Center" FontSize="16" FontWeight="Bold"/>
                    </StackPanel>
                </DataTemplate>
            </Setter.Value>
        </Setter>

        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="2" Background="White"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>



    </Style>

在Xaml中,我创建了一个ItemsControl,它使用ItemsControl节的模板样式,如下所示:

<ItemsControl Name="SectionsItemsControl" Style="{DynamicResource ListSectionsItemsControl}"/>

我成功地获得了部分名称。

但是我无法显示该部分的考试。

我尝试为考试ItemsControl命名(在ItemsControl部分的样式模板中),以便我可以在后面的代码中为其定义itemsSource,但可以在后面的代码中获取它。 zI还尝试定义ItemsSource,但也没有定义。

请怎么做? 感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)