【发布时间】:2015-02-24 07:33:18
【问题描述】:
我在 WinForms 中使用 ListBox。我对DisplayMember 属性有疑问。
如果我理解正确 - 如果我不提供 DisplayMember 属性,则 ListBox 使用对象 ToString() 方法。但是,如果我指定 DisplayMember,那么 ListBox 将显示集合中对象的指定属性。
但是,是否可以添加一些静态文本?
我的意思是,如果我的属性返回一个名字,例如“Dave”,我有没有办法通过使用 DisplayMember 属性或其他方式在这个名字前面加上“名字:Dave”?
我问是因为我正在使用的对象集合来自我无法控制的类 - 因此我无法轻松创建新属性或覆盖 ToString() 方法。
我简单地考虑过扩展类并提供我自己的重写ToString() 方法。但是在我的情况下,我需要能够将父类转换为子类(这是不可能的)。我很快就考虑编写一个静态方法,该方法接受父类作为参数,复制其内容并返回子类,但我只是不知道这是否被认为是干净和最佳实践。
有什么想法吗?
【问题讨论】:
-
你尝试了什么?给我们一些代码。
-
除了阅读文档之外,我还没有尝试过任何其他方法。此时真的没有任何代码可以显示或共享。我确实分享了一些其他可能的方法,但表示不确定它们是否是最佳实践。这是一个关于如何在绑定发生后更改 ListBox 中显示的行为的一般问题。