【问题标题】:How to use two templates for ListViewItem using WPF如何使用 WPF 为 ListViewItem 使用两个模板
【发布时间】:2010-05-04 18:38:37
【问题描述】:

我想要一个 ListView,它的项目类似于 Microsoft Outlook 收件箱,项目由 Conversations 排列(见附图)。项目可以是包含对话主题的简单文本块(在照片上,这是蓝线),也可以包含由 ListView 标题指定的电子邮件信息。最好是带有对话主题的项目是按钮,这样对话中的电子邮件就可以通过按下此按钮来显示或隐藏。

有什么想法可以实现吗?我是否指定两个 ListViewItem 模板?如果是,我如何在代码中告诉每个项目使用哪个模板?

任何帮助将不胜感激!! 问候, 格雷戈尔

alt text http://img401.yfrog.com/img401/1719/inboxy.png

【问题讨论】:

    标签: wpf templates listview listviewitem


    【解决方案1】:

    您应该查看DataTemplateSelector。谷歌一下。

    想法是这样的。

    1. 您将在 XAML 中定义 2-3 个模板
    2. 创建一个派生自 DataTemplateSelector 并基于 field/typeof 对象的类 您将返回相应的模板

    【讨论】:

      【解决方案2】:

      您的屏幕截图中使用的概念称为分组。如果您有 ListCollectionView 作为您的 ItemsSource,您可以轻松地使用分组。然后,您需要为 ListCollectionView 的 GroupDescriptions 属性指定多个 GroupDescriptions。

      要定义这些组的外观,您可以查看此 SO 帖子:How do I group items in a WPF ListView。其他感兴趣的博文可能是:Bea Stollnitz: How can I do custom Grouping?Bea Stollnitz: How do I sort groups of data items?

      在您的场景中,您将使用电子邮件对话的标题作为组标题,并且可能还会使用一些额外的数据。

      【讨论】:

      • 非常感谢您提供这些信息。这非常适合我的目的。谢谢!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 2010-09-25
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多