我在列表控件中有很多项.我希望每个项目都有不同的项目模板,具体取决于项目的类型.因此列表中的第一项是ObjectA类型,因此我希望它使用ItemTemplateA进行渲染.第二项是ObjectB类型,所以我希望它有ItemTemplateB进行渲染.目前我只能使用ItemTemplate设置为它们定义一个模板.有没有办法实现这个目标?
该ItemTemplateSelector
会工作,但我认为这是更容易地创建多个DataTemplate
在资源部分,然后只给每一个A S DataType
.DataTemplate
如果项目生成器检测到匹配的数据类型,这将自动使用此项?
...
还要确保你没有x:Key
设置DataTemplate
.在这里
阅读更多关于这种方法
看一下列表控件的ItemTemplateSelector属性.您可以将其指向自定义TemplateSelector并决定在代码中使用哪个模板.
这是一篇描述TemplateSelectors的博客文章:
http://blogs.interknowlogy.com/johnbowen/archive/2007/06/21/20463.aspx
编辑:这是一个更好的帖子:
http://blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/