3 Ağustos 2017 Perşembe

PropertyGrid Sınıfı

Genel Kullanım
Sınıfın public bir property alanına şöyle yaparız. Ben Category anotasyonunu hiç kullanmadım.
[Browsable(true),
 EditorBrowsable(EditorBrowsableState.Always),
 Description("..."),
 Category("Main")]
 public String Text {get;set;}
Bazen bir alanı obsolete yapmak isteriz. Bu durumda şöyle yaparız.
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)
 Description("..."),
 Category("Main"),
 Obsolete("Don't use this"),
]
public String Text {get;set;}
ComboBox şeklinde TypeConverter
Şöyle yaparız.
public class MyConverter : TypeConverter
{
  public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
  {
    return true;
  }

  public override StandardValuesCollection GetStandardValues(
    ITypeDescriptorContext context)
  {
    // you need to get the list of values from somewhere
    // in this sample, I get it from the MyClass itself
    var myClass = context.Instance as MyClass;
    if (myClass != null)
      return new StandardValuesCollection(myClass.Names);

    return base.GetStandardValues(context);
  }
}
Bu TypeConverter kendi sınıfımda şöyle kullanılır.
public class MyClass
{
  private List<string> myNames;

  public MyClass()
  {
    myNames = new List<string> { "jack", "pam", "phil", "suzan" };
  }

  [Browsable(false)]
  public List<string> Names
  {
    get { return myNames; }
  }

  [TypeConverter(typeof(MyConverter))]
  public string SelectedName { get; set; }
}
PropertySort Alanı
Şöyle yaparız.
propertyGrid1.PropertySort = PropertySort.NoSort;


Hiç yorum yok:

Yorum Gönder