代码之家  ›  专栏  ›  技术社区  ›  Phil Wright

WPF列表中每个项目的项目模板不同?

  •  14
  • Phil Wright  · 技术社区  · 16 年前

    列表控件中有许多项。我希望根据项目类型,每个项目都有不同的项目模板。所以列表中的第一个项是一个objecta类型,所以我希望用itemTemplateA呈现它。第二个项是ObjectB类型,所以我希望它具有用于呈现的itemTemplateB。目前,我只能使用itemtemplate设置为所有模板定义一个模板。有没有办法做到这一点?

    2 回复  |  直到 16 年前
        1
  •  15
  •   Jonathan.    11 年前

    这个 ItemTemplateSelector 可以,但我认为创建多个 DataTemplate 在你的资源部分,然后给每个 DataType . 这将自动使用这个 数据板 项目生成器是否检测到匹配的数据类型?

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

    还要确保你没有 x:Key 设置为 数据板 .
    阅读有关此方法的更多信息 here

        2
  •  6
  •   Matt Hamilton    16 年前

    看看 ItemTemplateSelector 列表控件的属性。您可以将其指向自定义模板选择器,并决定在代码中使用哪个模板。

    以下是一篇介绍模板选举人的博客:

    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/

    推荐文章