问题描述
我在数据库中有两个表:sections表和exams表。一个部分(在“部分”表中)具有一个或多个考试(在“考试”表中)。
本节中的Foreach部分,我要显示部分名称,并在ItemsControl中显示该部分的考试名称。该图像可能会对其进行更多说明。
因此,我要从数据库中获取各节的列表,并将其用作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 (将#修改为@)