2013-11-05 60 views
1

讓我們考慮在Data binding dynamic data中描述的問題。現在看看由Marc Gravell Marc's answer提供的出色解決方案。 Marc在沒有使用TypeConverter的情況下給出瞭解決方案。現在是時候提交我的問題了。我看到一個代碼結合TypeConverterPropertyDescriptor.Converter這個類似的問題沒有成功。 Marc爲字符串提供了一個簡單的解決方案,但是如果我們添加其他類型(如DateTime,int)呢?TypeConverter for PropertyDescriptor.Converter

P.S.我正在使用IBindingList,IList,ITypedList,ICustomTypeDescriptor作爲索引器的自己的實現,並在UI上包裝對象......但我是一個新手,當涉及到TypeConverter以及編程世界中缺少10年的C#時[必要性,但也很高興]。

回答

1

最後,我做了這樣的:

  1. 我創建自己的TypeConverter稱爲CharacteristicTypeConverter

  2. 我在執行的PropertyDescriptor的構造函數的我說:

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

  3. 要通過上下文來我用馬克Gravell的小費從這裏轉換器:http://bytes.com/topic/c-sharp/answers/676604-expandableobjectconvertors-typeconverters實施ITypeDescriptorContext

  4. 在我PropertyDescriptor實施GetValue/SetValue我使用轉換器如下:Converter.ConvertTo(...)Converter.ConvertFrom

相關問題