1

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

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

4

1 回答 1

1

最后,我这样做了:

  1. 我创建了自己的TypeConverter名为CharacteristicTypeConverter.

  2. 在我的 PropertyDescriptor 构造函数的实现中,我添加了:

    var attrs = new List<Attribute>();
    attrs.Add(new TypeConverterAttribute(typeof(CharacteristicTypeConverter)));
    this.AttributeArray = attrs.ToArray();

  3. 要将上下文传递给转换器,我使用 Marc Gravell 的提示:http: //bytes.com/topic/c-sharp/answers/676604-expandableobjectconvertors-typeconverters来实现ITypeDescriptorContext

  4. GetValue/SetValue我的PropertyDescriptor实现中,我使用转换器如下Converter.ConvertTo(...)Converter.ConvertFrom

于 2013-11-13T14:51:59.403 回答