动态枚举 .Net 中的属性值
您知道 TreeView 控件的 ImageList 属性如何列出窗体上的所有 ImageList 吗? 我需要类似的东西,但带有字符串列表。 它类似于枚举,但在运行时定义,对象在 PropertyGrid 中公开属性。
因此,对于像 { "foo", "bar", "grill" } 这样的字符串列表,属性应该列出这些字符串,但是如果该字符串列表发生更改(例如,添加“bbq”项),则属性应该 enum { "foo", "bar", "grill", "bbq" } 代替。
You know how a TreeView control's ImageList property lists all ImageLists on a form? I need something similar, but with a list of strings. It's like an enumeration, but defined at runtime, with the object that exposes the property in a PropertyGrid.
So, with a list of strings like { "foo", "bar", "grill" } the property should list those but if that list of strings is changed (say, add a "bbq" item), the property should enum { "foo", "bar", "grill", "bbq" } instead.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果它只是您需要的字符串列表,请考虑编写自己的
类型转换器
。 您需要重写GetStandardValues
方法。If it's just a list of strings you need, take a look at writing your own
TypeConverter
. You'll need to override theGetStandardValues
method.这篇关于 CodeProject 的文章介绍了如何编写自定义
TypeConverter
或UITypeEditor
。This article on CodeProject explains how to write a custom
TypeConverter
orUITypeEditor
.