我有一个包含遵循此结构的对象的列表。这不是我正在使用的真实课程,但应该解释这个概念。
课程
public class BaseType{}
public class TypeA : BaseType{}
public class TypeB: BaseType
{
public List<TypeA> TypeAList { get; private set; }
}
ItemsControl 绑定到的 List 是List<BaseType>
XAML
<ItemsControl>
<ItemsControl.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:TypeB}" ItemsSource = "{Binding Path=TypeAList}">
<DataTemplate.Resources>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="18"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataTemplate.Resources>
<Grid>
<Ellipse Fill="Gold"/>
<StackPanel>
<TextBlock Margin="3,3,3,0"
Text="{Binding Path=Description}"/>
<TextBlock Margin="3,0,3,7"
Text="{Binding Path=Name}"/>
</StackPanel>
</Grid>
</HierarchicalDataTemplate>
<ItemsControl.Resources>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
现在,我希望看到的是在 TypeB 对象属性中找到的所有 TypeA 对象都将显示在 ItemsControl 中,而我只看到 TypeB 对象,它们以为 HierarchicalDataTemplate 定义的样式显示。我在 TreeView 控件中使用了相同的数据模板,它可以很好地显示子项。
- 不能在 ItemsControl 中使用 HierarchicalDataTemplate 吗?
- 如何在 ItemsControl 中显示父子关系?