问题标签 [propertydescriptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - PropertyGrid / PropertyDescriptor AddValueChanged EventHandler Overide
我一直在使用 PropertyGrid 的动态类型描述框架(http://www.codeproject.com/Articles/415070/Dynamic-Type-Description-Framework-for-PropertyGri)
并且在添加事件处理程序逻辑时遇到了一个小障碍。按照示例,添加新项目时,已将 EventHandler 分配给“AddValueChanged”
然后是事件处理程序:
这一切都很好,但需要多种方法,每个项目一个。我想做的是实现一个全局/覆盖,其中已编辑项目的标签/名称可用;因为我似乎无法通过上面的 object / EventArgs 得到这个。
目前我有多个方法,简单调用changed方法,如下:
我一直在尝试实现类似下面的东西,但无法弄清楚如何将它们捆绑在一起/分配给 AddValueChanged 事件。
看来我需要按照以下方式传递 EventHandler:PropertyDescriptor.AddValueChanged(object component, EventHandler handler)
c# - 获取循环通过 PropertyDescriptorCollection 的 List 项的类型
循环遍历泛型类型的属性T
,我想知道是否T
恰好是List
该列表包含的项目类型。
我可以使用上面的代码检测类型是否为 a List
,但是如何获取列表项的类型?
c# - 为什么在使用 PropertyDescriptor 和 PropertyInfo 时获取属性的工作方式不同?
我知道调用会GetCustomAttribute
返回一个新生成的属性,但为什么我不能使用该属性获取该属性Attribute
?
我附上了这个例子:
定义:
代码:
c# - 使用 propertydescriptor 动态创建属性及其类型
我有一个有 2 个属性的类
所以这个“PropertyValue”属性可以保存任何原始数据类型,即 int、datetime、string 等。
我正在使用嵌套元素从自定义配置文件中读取设置。像这样的东西:
我希望能够根据配置文件中的值动态设置“PropertyValue”属性的类型。一位同事提到了PropertyDescriptors/TypeDescriptors/dynamic。有具体实施细节的建议吗?
谢谢
c# - 在 PropertyDescriptor 中的 ResetValue 之后强制属性网格更新
我正在使用 winforms 中的属性网格来显示我的自定义类型的属性 - 我使用自定义类型描述符(实现接口 ICustomTypeDescriptor)来执行此操作,以便显示我的对象的公共属性,每个属性都有自己的 PropertyDescriptor 实现。
该实现接近此处描述的代码:http: //www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert
这有效,因为我可以看到所有属性,并且它们在属性网格中有自己的编辑器但是我有如何实现的问题
在基础 PropertyDescriptor 上。
目前我已经像这样实现它:
然而,尽管数据确实得到了更新,属性网格显示只显示旧值,除非我刷新它 - 我无法弄清楚属性网格将如何更新或知道值已更改,是否存在某种事件刷新可以从 PropertyDescriptor 实现触发的单元格?
java - 如何从 JUnit 测试中的模拟对象中获取 typeName()?
这是我不得不模拟的最奇怪的方法之一。我需要以某种方式将我的单元测试与以下代码相协调:
看起来它可能是一个简单的单元测试(我将 getBeanInfo() 移到一个单独的方法中,这样我就可以模拟它而不会绊倒 Introspector)。但是,每当我到达 getTypeName() 时,它总是会抛出 InvocationTargetException。有没有办法以某种方式模拟 PropertyDescriptor 的属性类型?我在stackoverflow上找到了一个解决方案,但它并没有太大帮助。
带有 Mockito.when() 和泛型类型推断的奇怪泛型边缘案例
这是我如何模拟 BenInfo 对象的代码:
mockValue 对象只是一个通用对象。mockBeanInfo 对象是不言自明的。这段代码确实有效。问题是模拟 PropertyDescriptor 名称。
这是 getBeanInfo():
最后是 mockBeanInfo:
c# - PropertyGrid 可扩展集合
我想IList
在我的PropertyGrid
(通过“可扩展”,我显然是指将显示这些项目)中自动将每个显示为可扩展。我不想在每个列表上使用属性(再一次,我希望它适用于每个列表IList
)
我试图通过使用自定义PropertyDescriptor
和ExpandableObjectConverter
. 它可以工作,但是在我从列表中删除项目后,PropertyGrid
它没有被刷新,仍然显示已删除的项目。
我尝试ObservableCollection
与 raiseOnComponentChanged
和RefreshProperties
attribute 一起使用,但没有任何效果。
这是我的代码:
.
我将它用于IList
以下行的所有 s:
一些说明
我希望网格在更改列表时自动更新。当另一个属性发生变化时刷新,没有帮助。
一个有效的解决方案是一个解决方案,其中:
- 如果在列表为空时展开列表,然后添加项目,则网格会刷新并显示展开的项目
- 如果您将项目添加到列表中,展开它,然后删除项目(不折叠),网格会刷新并扩展项目,而不是抛出
ArgumentOutOfRangeException
,因为它试图显示已删除的项目 - 我想要一个配置实用程序的全部内容。只有
PropertyGrid
应该更改集合
重要编辑:
我确实设法使扩展集合更新Reflection
,并在调用GetValue 方法时(引发事件时)NotifyValueGivenParent
在context
对象上调用方法:PropertyDescriptor
RefreshRequired
它完美地工作,除了它会导致事件被无限次引发,因为调用NotifyValueGivenParent
会导致重新加载,PropertyDescriptor
因此引发事件等等。
我试图通过添加一个简单的标志来解决它,如果它已经重新加载,它将阻止重新加载,但由于某种原因,它的NotifyValueGivenParent
行为是异步的,因此重新加载会在标志关闭后发生。也许这是另一个探索的方向。唯一的问题是递归
java - 我如何在java上按字典顺序读取类属性(成员)?
我正在尝试使用 swt 构建输入对话框。我想阅读我的类属性并按指定顺序甚至字典顺序制作对话框窗口。我会将我的类属性保存在linkedhahmap\treemap 中。
例子:
输出不是类属性顺序,它类似于
javascript - 属性描述符对象存储在哪里?
我知道您prop
可以obj
使用
Object.getOwnPropertyDescriptor(obj,"prop");
. 我只是想知道:这些对象存储在哪里?它们是存储在对象内部还是....其他地方?我试图在开发人员工具中找到它们,但没有运气。
c# - 自定义本地化 BooleanConverter
我正在尝试实现本地化的 BooleanConverter。到目前为止一切正常,但是当您双击该属性时,将显示下一条消息:
“'System.String' 类型的对象无法转换为 'System.Boolean' 类型。”
我想问题出在具有该布尔属性的 TypeConverter 的 CreateInstance 方法中。