我在列表控件中有很多项。我希望每个项目都有不同的项目模板,具体取决于项目的类型。因此列表中的第一项是ObjectA类型,因此我希望它使用ItemTemplateA进行渲染。第二项是ObjectB类型,所以我希望它有ItemTemplateB进行渲染。目前我只能使用ItemTemplate设置为它们定义一个模板。有没有办法实现这个目标?

有帮助吗?

解决方案

ItemTemplateSelector 将起作用,但我认为在资源部分创建多个 DataTemplate 然后给每个 DataType 。如果items生成器检测到匹配的数据类型,这将自动使用此 DataTemplate

<DataTemplate DataType={x:Type local:ObjectA}>
   ...
</DataTemplate>

还要确保没有为 DataTemplate 设置 x:Key
了解有关此方法的更多信息,请此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top