2009-01-25 10 views
7

Bir kullanıcı denetimi oluşturuyorum. Şu anda bir metin kutusu ve bir düğme oluşur - bir öğrenme deneyimi olarak. Bu daha kullanışlı bir kontrol için bir temel olarak kullanılacaktır.Kullanıcı Denetimi için DataSource

Bir DataSource, görüntü üyesi ve ValueMember eklemek istiyorum.
Veri kaynağı için kodum İşte. Özellikler düzenleyicide görüntülenir, ancak devre dışı bırakılır ve grileştirilir. Neyi kaçırıyorum?

private object MyDataSource; 

    [Browsable(true)] 
    [TypeConverter("System.Windows.Forms.Design.DataSourceConverter")] 
    [System.ComponentModel.Bindable(true)] 
    public object DataSource 
    { 
     get 
     { 
      return MyDataSource; 
     } 
     set 
     { 
      if (MyDataSource != value) 
       MyDataSource = value; 
     } 
    } 

cevap

5

daha kolay bir seçenek yerine bir özellik sağlayıcı kullanmak olabilir:

[AttributeProvider(typeof(IListSource))] 

Sen derleme nitelikli adını kullanarak deneyebilirsiniz? ve editörü belirliyor musunuz?

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design")] 
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design", typeof(UITypeEditor))] 
:

[TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] 
[Editor("System.Windows.Forms.Design.DataSourceListEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] 

Aslında, sadece montaj belirterek bu sürüm bağımsız olmak kısaltmak olabilir