问题标签 [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.

0 投票
2 回答
4710 浏览

c# - C# - 如何确定属性是否已更改

我需要知道是否更改了公共属性(具有 getter 和 setter)。该属性在一个简单的类中(没有用户控件/组件等)。
是否有一种优雅的方式来订阅某种事件,该事件会在属性更改时发出通知?
我试图看看微软在他们的 Binding 对象中做了什么(使用反射器),这导致我探索 PropertyDescriptor.AddValueChanged 方法,但它对我没有用。也许它只适用于组件/用户控件......

有什么建议么?

谢谢,
阿迪巴尔达

0 投票
1 回答
4441 浏览

c# - 将 ICustomTypeDescriptor.GetProperties 返回的属性动态更改为只读

我有一个实现 ICustomTypeDescriptor 的类,并由用户在 PropertyGrid 中查看和编辑。我的班级还有一个 IsReadOnly 属性,该属性确定用户以后是否能够保存他们的更改。如果用户无法保存,我不想让他们进行更改。因此,如果 IsReadOnly 为真,我想覆盖任何在属性网格中可编辑为只读的属性。

我正在尝试使用 ICustomTypeDescriptor 的 GetProperties 方法将 ReadOnlyAttribute 添加到每个 PropertyDescriptor。但这似乎不起作用。这是我的代码。

这甚至是使用 TypeDescriptor.AddAttributes() 的正确方法吗?在调用后进行调试时,AddAttributes() 属性仍然具有相同数量的属性,其中没有一个是 ReadOnlyAttribute。

0 投票
1 回答
303 浏览

controls - Control 类如何提供 ForeColor、BackColor 和 Font 默认值?

我知道组件模型通过PropertyDescriptor 的 ShouldSerializeValue 方法指示属性是否具有默认值。

基本的 windows-formsControl类具有一些属性,例如ForeColor、BackColor 和 Font,它们默认为与父级相同的值,但我找不到任何TypeDescriptorPropertyDescriptor提供这些默认值的属性。Control 类没有实现 ICustomTypeDescriptor,也没有 TypeDescriptionProviderAttribute。

Control 类如何指示这些属性是否应该被序列化?它在哪里为这些属性提供 PropertyDescriptors?

谢谢!!!

0 投票
1 回答
2711 浏览

c# - 了解 TypeDescriptor/PropertyDescriptor/等

见代码:

我对代码有几个问题:

(1) 我SerializableAttribute在 DataItem 的类型中添加了一个,这个“更改”适用于什么?我无法通过 . 获取此属性。typeof(DataItem).GetCustomAttributes(true)似乎更改未应用于“基本数据项”,它暂时存储在 TypeDescriptionProvider 中?

(2)实例another是由提供者创建的(我们添加属性的地方),我想现在这个变量和SerializableAttributed DataItem的构造函数创建的变量是一样的吗?即使我们仍然无法通过another.GetType().GetCustomAttributes.

(3) 我认为更改暂时存储在提供程序中的另一个原因是我试图创建一个具有其名称Str和类型的属性,该属性string实际上已经存在于DataItem. 代码将输出hello. 如果我取消注释该SetValue方法,输出将是new one. 我有什么误解吗?

0 投票
1 回答
909 浏览

.net - TypeDescriptor.GetProperties 从类中不返回任何内容

我已经定义了一个包含两个简单属性 num 和 name 的类 TestObject。我正在尝试对 TestObject 类的对象使用 TypeDescriptor.GetProperties() 来检索定义的属性。但是,它不会返回任何东西。

我在这里错过了一些简单的东西吗?感谢你的帮助。

0 投票
1 回答
231 浏览

.net - 默认属性列表应该出现在我在 c# .net 中的类定义中

我有一个员工班:

我创建了一个自定义CustomeAttribute属性

我在 as 中使用asCustomAttribute属性Employee

我想验证每个属性定义都应该存在属性集合。如果我将新属性添加Age到“员工”为

由于缺少属性,我应该得到编译时错误。这将确保将属性值写入该类的每个属性以及来自同一程序集的类。??

对于没有属性值的属性,我应该得到编译时错误。

0 投票
4 回答
36176 浏览

c# - 如何获取当前属性的 PropertyDescriptor?

我怎样才能得到PropertyDescriptor当前财产的?例如:

0 投票
2 回答
9361 浏览

android - Android 错误“无法解析虚拟方法 java/beans/PropertyDescriptor”是否有解决方法?

我正在尝试在 Android 应用程序中使用第三方 jar 文件。我已经能够很好地使用 jar 文件中的一些类。但是,其中一个类引用了 dalvik vm 似乎不支持的一些 Java 类。这些是我在 LogCat 中看到的一些错误:

dalvik 似乎不支持与自省和反射相关的 Java 类。我想了解两件事。这是在不久的将来在 dalvik 中支持这一点的计划吗?其次,有没有人建议解决这个问题?

0 投票
2 回答
3872 浏览

java - 如何为 java bean 使用参数化属性名称和类型的列表

说我有一颗豆子

....}

我正在使用以下代码来处理或转储属性

我希望能够获得“分数”和“消息”的参数化类型。当我破坏代码时,“descriptor.getPropertyType().getName()”的值对于 messages 和 scores 都是“java.util.List”。

我如何判断“消息”的属性描述符是否指代List<String>和“分数”指的是List<Integer>

0 投票
1 回答
1849 浏览

c# - WPF Datagrid 数据绑定到具有静态属性的类和包含动态属性值条目的字典

更新

我正在更新这篇文章,因为我做了更多阅读并决定重新实现我的解决方案。

原始问题:我有一个具有静态属性的类和一个属性,它是属性的动态集合(通过字典)。我想将我的类数据绑定到 wpf 数据网格,其中每个静态属性应该是一列,每个字典条目应该是网格中的一列。

在做了更多研究之后,我决定实现一个 PropertyBag 类,它将包含我的属性和值字典。现在几乎一切正常。我的网格显示了所有正确的列,并且正确应用了静态属性值。

但是,现在我无法从字典中获取任何要应用于网格的值,而且我不确定从这里去哪里。

更多信息:

我的数据库有 3 个表,一个板块,一个类别,一个类别板块关联表。每个板块可以有 0 到多个类别。现在,我正在用所有类别填充每个板块并将字符串设置为空。然后,当返回关联时(在板和类别之间),我在特定类别名称上设置实际值。这一切都发生在网格创建之前。

属性包:

修订版类

修改后的 CustomTypeDescriptor:

修改后的 PropertyDescriptor

简单的视图模型