PropertyDescriptor.Converter的TypeConverter

时间:2013-11-05 07:45:38

标签: c# typeconverter propertydescriptor

让我们考虑Data binding dynamic data中描述的问题。现在来看看Marc Gravell Marc's answer给出的最佳解决方案。 Marc在不使用TypeConverter的情况下提供了解决方案。现在是时候提交我的问题了。我正在寻找一个将TypeConverterPropertyDescriptor.Converter组合在一起的代码示例,但问题与此类似。 Marc为字符串提供了一个简单的解决方案,但是如果我们添加其他类型,例如DateTime,int?

P.S。我正在使用自己的IBindingListIListITypedListICustomTypeDescriptor实现索引器并在UI上包装对象......但是当它到来时我是新手编程世界缺席10年之后TypeConverter以及C#[必要,但也很高兴]。

1 个答案:

答案 0 :(得分: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