2012-08-13 25 views
9

Aşağıdaki resimde "MyCars" bir koleksiyondur. Bir nesnenin özelliği bir koleksiyon ise, bir PropertyGrid öğesinde, öğe seçildiyse sağdaki düğme ile "(Koleksiyon)" dizesi olarak görünür.PropertyGrid özellik öğesinin değerini değiştirme

o "(Koleksiyon)" değerini değiştirmek mümkün mü? Öyleyse nasıl? Sormamın nedeni, programımda PropertyGrid'de görünecek nesne için özel bir UITypeEditor uyguladığım olmasıdır. Şimdiye kadar, sağdaki düğme görünür, ancak metin değeri mülkün görünen adıyla aynıdır. Orada görünmesi için farklı bir ipucu istiyorum.

Example propertygrid.

Düzenleme: UITypeEditor dan PaintValue yöntemini geçersiz ve ben bu sorunu çözemez ise yapmak zorunda kalabilirler bir simge, sağlayabilir, ancak bu değer ne, biliyorum ben istiyorum hala "(Koleksiyon)" metninin nasıl değiştirilip değiştirilemeyeceğini bilmek istiyor.

+0

Sanırım PaintValue yöntemini kullandıysanız, ancak emin değilseniz simgenizin yanında "(Koleksiyon)" ile devam edebilirsiniz. –

cevap

7

Bu makale Customized display of collection data in a PropertyGrid yardımcı olabilir.


** GÜNCELLEME **

(kullanılamaz olma bağlantı durumunda) maddenin bir özetlenebilir sürümünü sağlamak bir de ekran ve toplama içeriğinin açıklamasının özelleştirilmesiyle gereken adımlar

  1. bir sınıfı soyut temel sınıf PropertyDescriptor oluşturmak türeterek özel özellik tanımlayıcısı sağlamak aşağıdaki gibidir: PropertyGrid vardır.
  2. Soyut yöntemleri ve özellikleri geçersiz kılın. DisplayName ve açıklama özellikleri için uygun bir uygulama sağlayın.
  3. Koleksiyon sınıfınızın ICustomTypeDescriptor arabirimini gerçekleştirmesine izin verin.
  4. Özel özellik tanımlayıcısı koleksiyonunu GetProperties() yöntemiyle döndürür.
  5. İsteğe .NET tarafından sağlanan TypeConverter türetilen nesneleri kullanmak veya alan adı sınıfların metinsel gösterimini özelleştirmek için kendi sınıfları uygulamak. Onları TypeConverterAttribute sınıfını kullanarak uygun sınıflara veya özelliklere atayın.

, özelliği tanımlayıcıları birlikte zincirleme edilebilir PropertyGrid veri küreselleştirme (aynı zamanda Globalized property grid bakınız).

+1

^Bu cevap! –

+1

Vay! İşe yaradı! Teşekkürler! – kevin628

İlgili konular