问题标签 [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 投票
1 回答
693 浏览

c# - INotifyPropertyChange 事件和自定义 PropertyDescriptor

我有一个简单的 Windows 窗体应用程序,它使用DataGridView绑定到BindingList<>我的自定义对象 (MCO)。

我还实现了针对 MCO 类型注册的自定义 TypeDescriptor 和自定义 PropertyDescriptor,目的是提供有关 DataGridView 的更多信息,而不是 MCO 的默认属性。自定义 TypeDescriptor 的 PropertyDescriptorCollection 返回来自父级的 PropertyDescriptor(MCO 的默认 PropertyDescriptor)和一个自定义 PropertyDescriptor。

一切都很好,当DataGridView绑定到 DataSource 时,显示的列对应于从自定义 TypeDescriptor 返回的列。

我还在 MCO 上实现了 INotifyPropertyChanged,以便在更改 MCO 属性时 datagridview 将刷新。然而,经过三天的互联网搜索并运行各种测试代码,我很难理解如何让自定义 PropertyDescriptor 也参与 INotifyPropertyChanged 事件。

例如说 MCO 看起来像这样

然后我通过 TypeDescriptor.AddProvider() 添加一个自定义 PropertyDescriptor“VirtualProperty2”,它通过 PropertyDescriptor 的 getter 和 setter 映射到 Property1。

绑定时DatagridView,它将 Property1 和 VirtualProperty2 显示为两列,并且单元格的值与预期的一样。

如果我然后通过以下方式更改 Property1 的值 -

  1. 直接更新datagridview中的Property 1单元格
  2. 直接更新datagridview中的VirtualProperty2单元格
  3. 单击通过代码更新 MCO.Property1 实例的表单上的按钮

Property1 单元格将按预期刷新。但是 VirtualProperty2 只会在条件 2 中改变。

如果我在第 1 步或第 3 步之后单击 VirtualProperty2 的单元格,它将更新。(因为单击单元格必须触发调用 PropertyDescriptor 上的 getter 的事件)

当MCO中的Propery1触发它时,我需要VirtualProperty1的PropertyDescriptor来响应PropertyChanged事件,因为实际上VirtualPropery1被映射到Property1。

想法?

0 投票
1 回答
394 浏览

c# - DataGridAutoGeneratingColumnEventArgs.PropertyDescriptor 是什么类型?

我是 WPF 的新手,我正在尝试自定义一些 dataGrid 以以可读的方式显示数据。我看过这篇文章,我想知道 - 最后将PropertyDescriptor属性转换为两个类,使用as关键字和一个小的校验码。PropertyDescriptor和类有什么区别PropertyInfo?为什么两者都使用?

0 投票
1 回答
1047 浏览

c# - PropertyDescriptor.Converter 的 TypeConverter

让我们考虑数据绑定动态数据中描述的问题。现在看看 Marc Gravell Marc 的答案给出的绝佳解决方案。Marc 给出了没有使用 TypeConverter 的解决方案。现在是时候提交我的问题了。我正在寻找一个没有成功的代码示例,它结合了TypeConverterPropertyDescriptor.Converter这个类似的问题。Marc 为字符串提供了一个简单的解决方案,但是如果我们在其中添加其他类型,例如 DateTime、int 呢?

PS 我正在使用自己的IBindingList, IList, ITypedList,ICustomTypeDescriptor实现索引器并在 UI 上包装对象......但是在编程世界缺席 10 年后,我是一个新手TypeConverter,以及 C# [必要性,但是也很高兴]。

0 投票
1 回答
868 浏览

c# - 如何在 PropertyGrid 的根行中编辑可扩展对象?

在 PropertyGrid 方面需要帮助。

我有 CustomClass 列表以在 PropertyGrid 控件中显示它。我想在 propertygrid 中修改 CustomClass 实例的属性。(条件是不应该有编辑)。使用相关文章中所示的 ExpandableObjectConverters 和 PropertyDescriptors,我可以通过将 List 扩展为属性来修改 List 中的每个 CustomClass 实例。但我的目标是在不扩展的情况下修改其行中的 CustomClass 属性。(您可以在 VS 控件属性视图中找到 SomeControl Size 属性的示例行为)

如何编辑根行中的可扩展对象?

图片来自文章

此图片的详细问题:如何在不扩展的情况下将 Max Headroom 从“销售,经理”更改为“销售,总监”。(我的问题是这一行是只读字段)

相关文章: http ://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert?msg=4745311#xx4745311xx 我也在那里发布了一个问题(还没有答案)。

如果太复杂,我可以生成一些基本的代码示例。

0 投票
1 回答
90 浏览

.net - 从源列表创建引用类型 List(Of Objects)

我使用以下代码使用源对象创建特定目标类型的新实例,其中我将所有原始类型属性值从源对象复制到目标对象:

现在。我有一个 List(Of Class1) 并希望使用相同的通用方法获取 List(Of Class2)。在这里,我想通过 List(Of Class1) 和目标类型(即 GetType(Class2)) 我怎样才能实现相同的目标?

0 投票
0 回答
1446 浏览

java - PropertyDescriptor getWriteMethod 类型

我想用String我从resultSet.

当我的对象看起来像这样时,这非常有效:

现在我希望这个字段值是一个整数:

现在上面的代码抛出异常,因为它找不到带有Stringas 属性的方法。当我将代码修改为:

我怎样才能动态地做到这一点?Image 我想通过使用这种setter方法分配许多字段并且我不知道对象中的字段是什么类型,我只想调用适当的setter方法,该方法在对象中声明。我的想法是通过检查对象中字段的类型,在 resultSet 上调用适当的 get... 方法。但我不知道该怎么做。

有任何想法吗?

0 投票
4 回答
1426 浏览

java - Java 8 和 Bean Info Introspector 接口中的默认方法

我对 Interface 和 BeanInfo Introspector 中的默认方法有一点问题。在这个例子中,有接口:接口

和两个类ClassA和ClassB:

在 main 方法中,app 从 BeanInfo 打印 PropertyDescriptors:

结果是:

为什么默认方法“字母”在 ClassA 中不作为属性可见?是错误还是功能?

0 投票
2 回答
210 浏览

c# - 获取当前类和基类的所有属性

我有 2 个具有多个内部属性的类(比如说“BaseItem”和“ChildItem”)。在 BaseClass 中,我定义了一个方法,它应该读取所​​有这些属性

或者

当我在“ChildItem”的实例中调用此方法时,我只得到“ChildItem”中定义的属性。我还能做些什么来获得“BaseItem”的属性?

问候

戴夫

0 投票
0 回答
166 浏览

.net - DependencyPropertyDescriptor.FromProperty 在 NET 4.0 中不再起作用

我正在迁移一些自己构建的“框架”dll,并且遇到了意外的行为。我已将问题简化为以下内容:

我有一个带有依赖属性的自定义组合框

当我调用此代码时:

这返回

在 .NET 3.5 -> 一个有效的 PropertyDescriptor

在 .NET 4.0 中 -> 无、Niente、Nada、Null

这是 .NET 框架中的错误吗?它已经被弃用了吗?我还有其他选择来获取描述符吗?

0 投票
1 回答
335 浏览

jenkins - Jenkins Jelly f:property propertyDescriptor 属性

我在使用 Jenkins property.jelly propertyDescriptor 字段时遇到了一些麻烦。在做了一些研究之后,我发现 propertyDescriptor 属性的实现令人困惑。

这是代码:

property.jelly 文件

看到这一行:

我假设 ?: 是果冻中的三元运算符吗?但是,它本质上说:如果设置了 ${attrs.propertyDescriptor},则将“descriptor”设置为空,否则将“descriptor”设置为 app.getDescriptorOrDie( ... )

不应该是:

注意我插入的代码?和 :。

这是 property.jelly 中的错误吗?