问题标签 [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# - 表达式树和 PropertyDescriptor
有什么干净的方法可以PropertyDescriptor
从表达式树中获取一个?
我目前有PropertyInfo
,但理想情况下我想要PropertyDescriptor
我的代码:
我需要 PropertyDescriptor 是因为我需要使用:
我不能使用PropertyInfo.SetValue(this, null, null)
,因为它不适合我的需要,因为我需要重置为DefaultValueAttribute
.
c# - 检索嵌套对象的 PropertyDescriptor
我有以下代码:
该代码适用于simpleExample
. 上NestedPropertyExample
,第一个赋值PropDesc
返回null
。当我检查TypeDescriptor.GetProperties("Form1." + nestedProperties[0])
时,它返回PropertyDescriptorCollection
一个项目,即长度。
为什么我不退回更多PropertyDesriptor
商品?我会以正确的方式解决这个问题吗?
谢谢,比尔 N
c# - 派生类无法使用 PropertyDescriptorCollection.SetValue 访问受保护的设置器
我已经在我的基类中设置了我的一个属性来拥有一个受保护的设置器。这工作正常,我可以在派生类的构造函数中设置属性 - 但是当我尝试使用 PropertyDescriptorCollection 设置此属性时,它不会设置,但是使用该集合适用于所有其他属性。
我应该提到,当我删除受保护的访问修饰符时,一切正常......但当然现在它不受保护。感谢您的任何意见。
java - 与 PropertyDescriptor 类的 getName 方法有关的 Java Beans 查询
这可能是一个幼稚的问题。我责怪我在 Java Beans 方面的经验不足。
我使用Java Beans如下 -
我有一个ComponentModel
有boolean
成员的班级isComponentEditable
然后我有一ComponentPropertyEditor
堂课,我在其中执行以下操作-
我看到getName()
我前面提到的成员isComponentEditable
被退回为componentAsEditable
. 我的印象是,对于类,成员名称将按原样返回getName()
。
javadoc 说getName()
返回“程序名称”。
什么是程序名,为什么它与我前面提到的班级成员的名字不同?
python - 创建每个实例的属性描述符?
通常 Python 描述符被定义为类属性。但就我而言,我希望每个对象实例都有不同的集合描述符,这些描述符取决于输入。例如:
每个对象都有不同的属性集,这些属性在实例化时决定。由于这些是一次性对象,因此首先对它们进行子类化并不方便。
将描述符分配给对象似乎不起作用。如果我尝试访问该属性,我会得到类似
你知道为什么这不起作用吗?有什么解决办法吗?
c# - 对象级的 PropertyGrid 只读属性
我想在我的PropertyGrid
. 该类如下所示:
我有很多该类的实例TreeView
。当我在其中选择其中一个时TreeView
,属性会PropertyGrid
按预期显示。到目前为止一切顺利,但我想通过以下方式自定义此行为:
对于每个单独的实例,我希望能够防止用户修改特定属性。通过ReadOnly(true)
在我的班级中设置(如您在上面的示例中所见),所有Value
属性都将在class-level上禁用。
经过一番研究,我发现了以下解决方案,它使我有机会在运行时启用/禁用特定属性:
这种方法工作得很好,但不幸的是也仅限于类级别。这意味着如果我将Value
's设置isReadOnly
为false
,我的所有Parameter
-objects 都具有Value
可写属性。但我只希望在那个特定的对象上(因此是object-level)。我真的不想为读/写和只读属性创建单独的类。
由于我的想法不多了,非常感谢您的帮助:)
提前致谢!
编辑:我需要将只读属性显示为灰色,以便用户可以看到不允许或无法编辑它们。
c# - PropertyDescriptor - GetValue() 工作时 SetValue() 出现异常
我有一个我已经定义的对象,我希望使用 PropertyDescriptor 修改它的一个名为“DeviceType”的属性,但它不适合我。
我可以检索属性 DeviceType 的值,但是当我使用 SetValue() 更改其属性值时,即使我尝试将属性设置为与我刚刚检索到的值相同。
这是一些代码:
任何帮助将非常感激。谢谢。
python - 如何使用默认属性描述符并从 __init__() 成功分配?
请问这个的正确成语是什么?
我想定义一个包含可以(可选)从字典初始化的属性的对象(字典来自 JSON;它可能不完整)。稍后我可能会通过设置器修改属性。实际上有 13+ 属性,我希望能够使用默认的 getters 和 setters,但这似乎不适用于这种情况:
但我不想为所有内容编写显式描述符prop1... propn
另外,我想将默认分配移出__init__()
和移入访问器......但是我需要显式描述符。
什么是最优雅的解决方案?(除了将所有 setter 调用移出__init__()
和移入方法/类方法_make()
?)
[删除评论 使用默认描述符的 badprop 的代码是由于以前的 SO 用户的评论,他给人的印象是它给了你一个默认的设置器。但它没有 - setter 是未定义的,它必然会抛出AttributeError
.]
如果你在第 5 行self.badprop = ...
未注释的情况下运行它,它会失败:
AttributeError:无法设置属性
[和以往一样,我阅读了关于描述符、隐式描述符、从init调用它们的 SO 帖子]
asp.net-mvc-3 - 仅实体框架属性描述符集合字段值
..嗨,我正在尝试连接来自任何实体的一些列值,如下所示:
但是,它也向我显示了列引用。换句话说,它也会在最后打印:
我只想返回列值,我可以通过将最后一列值与硬编码字符串进行比较来打破 foreach 来实现。但我真的很想知道是否有更好的方法。