Bir formdaki tüm denetimleri yönetmeme yardımcı olan bir özellik kılavuzum var. Bu kontroller tasarımcı tipi insanlar içindir, bu yüzden kullanıcı arayüzü hakkında çok fazla endişe duymuyorum ... birisi birden fazla nesne seçene kadar.Birden çok öğe seçildiğinde nasıl özel dizeleri görüntülerim?
Bu yaygın nesnelerdeki "EffectiveDiameter" özelliği için bir UITypeEditor var. Birimleri (metre vs feet) takip eder ve anında güzel şeyler yapar. Bununla birlikte, birisi iki veya üç ortak nesne seçtiğinde, aynı metin dizesine göre değerlendirilse de EffectiveDiameter boştur. Örneğin, çoğu denetimde Microsoft, "Üst, Sağ" metin çıktısı olan "Çapa" özelliğine sahiptir. Örneğin; Aşağı indirdiğinizde güzel bir UITypeEditor olan bir nesnedir. Yine de, formunuzda aynı Çapa ayarına sahip beş nesne seçtiğinizde, özellik kılavuzunda "Üst, Sağ" dizesini görmeye devam edebilirsiniz.
/// <summary>
/// The default containing class for all Unit-Management Conversion classes.
/// </summary>
[
Serializable,
EditorAttribute(typeof(umConversionTypeEditor), typeof(UITypeEditor)),
TypeConverter(typeof(umConversionTypeConverter)),
]
public class umConversion
{
...
}
public class umConversionTypeEditor : UITypeEditor
{
...
}
// Now, in my designer class, I have ...
private double _effectiveDiameter { get; set; }
[DisplayName("Effective Diameter")]
public virtual umConversion EffectiveDiameter
{
get
{
umConversion ret = new umConversion (_effectiveDiameter);
ret.MeasureInSI = _si;
return ret;
}
set
{
_effectiveDiameter = value.ImperialUnits;
}
}
}
benim özel nesnelerin çeşitli seçerseniz - hepsi aynı etkin çapı - nasıl Çapa yaptığı gibi EffectiveDiameter PropertyGrid görüntülemek alabilirim? Şu an bu alan her zaman boş.
Sınıfın kendisinde bir TypeConverter var. Ancak, bunun bir hile olmadığını garanti etmek için, çalışıp çalışmadığını görmek için bir öznitelikte bir TypeConverter (dizeye/dizeden dönüştüren) yerleştirdim. Olmadı. = ( – Jerry
Üzgünüz :(Mümkünse ortak bir temel sınıf veya arabirim sağlamayı denediniz mi? Eğer değilse, özellik tanımlayıcılarıyla bir sihreye dönmeniz ve tüm örnekler için aynı örneği (PropertyDescriptor) döndürdüğünüzden emin olmanız gerekebilir. – leppie