wpf listview可以自定义显示风格吗?

悬赏园豆:20 [已解决问题]

请问,ListView是怎么创建ListViewItem的,那个方法在哪里?或者是,我能重写生成ListViewItem项的方法吗?

是通过继承的方式扩展的吗

晕,谢谢的回复,我自己已经解决了。

您这样是不行的,因为我不能手动去声明有多少Item,而且,你这样申明,我想也是ListViewItem中包含您定义的MyListViewItem

}

ListView 控件在 Windows 应用程序中非常常用,用于表示数据列表。一个很好的例子是 Windows 资源管理器中的文件列表,其中每个文件都可以按其名称显示,如果需要,还可以显示包含有关大小、上次修改日期等信息的列。

是一个独立的控件,不依赖于 Windows API。

WPF ListView 控件在其最简单的形式中非常简单。事实上,它看起来很像 WPF ListBox,直到您开始向它添加专门的视图。这并不奇怪,因为 ListView 直接从 ListBox 控件继承。因此,默认的 ListView 实际上只是一个 ListBox,具有不同的选择模式(稍后会详细介绍)。

这非常简单,使用手动指定的 ListViewItem 来填充列表,除了代表每个项目的文本标签之外什么都没有 - 一个最小的 WPF ListView 控件。

由于 WPF 的外观特性,为 ListViewItem 指定图像不仅仅是为属性分配图像 ID 或键。相反,您可以完全控制它并指定在 ListViewItem 中呈现图像和文本所需的控件。下面是一个例子:

using 不知道您希望如何显示数据,所以它只是在每个对象上调用 ToString() 方法并使用它来表示项目。

我们可以利用它的优势并覆盖 ToString() 方法,以获得更有意义的输出。尝试用这个版本替换 User 类:

这是一个更加用户友好的显示并且在某些情况下会很好,但是依赖一个简单的字符串并不是那么灵活。也许您希望文本的一部分为粗体或其他颜色?也许你想要一个图像?幸运的是,WPF 使用模板使这一切变得非常简单。

WPF 是关于模板的,因此为 ListView 指定数据模板非常容易。在此示例中,我们将在每个项目中进行大量自定义格式设置,只是为了向您展示这使 WPF ListView 变得多么灵活。

我们使用一堆 TextBlock 控件来构建每个项目,其中我们将部分文本以粗体显示。对于我们添加到这个例子中的电子邮件地址,我们给它加下划线,给它一个蓝色并改变鼠标光标,使其表现得像一个超链接。

我们使用了 WPF ListView 的最基本版本,也就是没有指定自定义 View 的版本。这导致 ListView 的行为非常类似于 WPF ListBox,但有一些细微的差异。真正的力量在于视图,而 WPF 带有一个内置的专门视图:GridView。

通过使用 GridView,您可以在 ListView 中获取多列数据,就像您在 Windows 资源管理器中看到的一样。为了确保每个人都能将其形象化,我们将从一个基本示例开始:

因此,我们对测试数据使用与之前相同的 User 类,然后将其绑定到 ListView。这与我们在前几章中看到的完全相同,但是正如您从屏幕截图中看到的,布局非常不同。这就是数据绑定的威力——相同的数据,但以完全不同的方式呈现,只需更改标记即可。

请注意:此示例的代码隐藏代码与本文第一个示例中使用的代码相同。

我们为最后一列指定了一个自定义CellTemplate,我们希望在其中对电子邮件地址进行一些特殊的格式化。对于我们只需要基本文本输出的其他列,我们坚持使用DisplayMemberBinding,因为它需要更少的标记。

}
  • 我定义了一个listview Template,在模板中可以自定义你要显示的图片(或者加文字,改变大小等)。 你可以试试下面的代码,并根据你的需要进行修改。


}

我要回帖

更多关于 wpf拖动排序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信