Harun Özer


Proje veya dijital katalog yaptırmak için
iletişim formu doldurabilirsiniz..

<< sql identity insert | Uml Nedir?>>

propertygrid browsable property attribute belirtmek

Yazar harunozer 11 February 2013

propertygrid browsable property attribute belirtmek c#.net içindeki PropertyGrid kontrolünde varsayılan olarak Browsable(true) attribute sini kullanan property ler görüntülenir. Fakat kendi belirteceğimiz bir attribute sahip property lerin görüntülenmesini isteyebiliriz. Bunun için PropertyGrid kontrolünün BrowsableAttributes özelliğini değiştirmemiz gerekir.

 

Örneğin kendi userControllerimizi kullanmamız gereken bir uygulama yazıyoruz ve bu kontrollerin özelliklerini çalışma sırasında kullanıcıların değiştirmesine izin vermemiz gerekiyor. Fakat kullanıcının UserControl sınıfının özelliklerini görmesini istemiyoruz. Sadece bizim ekleyeceğimiz özelliklerden istediklerimizi görmesini istiyor olalım. Bu durumda ilk önce kendi Attribute sınıfımızı yazmamız gerekir. Sonra da PropertyGrid kontrolüne bu attribute sahip propertylerin gösterileceğini belirmemiz yeterli olacaktır. 
 
Oluşturacağımız Attribute sınfının aşağıdaki gibi True/False değer tutacak bir Attribute sınıfı olması yeterlidir.
 
[System.AttributeUsage(System.AttributeTargets.Property)]
public class CustomAttirbute : System.Attribute
{
      private bool IsView { get; set; }
 
      public CustomAttirbute(bool v)
      {
            IsView = v;
      }
 
      public bool getView()
      {
           return IsView;
       }
}
 
Oluşturduğumuz bu Attribute sınıfını oluşturacağımız UserControl lerde aşağıdaki gibi kullanabiliriz.
 
public partial class BaseControl : UserControl
{
       public BaseControl()
       {
              InitializeComponent();
       }
 
       [CustomAttirbute(true)]
       public string Ad { get; set; }
 
       [CustomAttirbute(false)]
       public string KayitEden { get; set; }
}
 
Son olarak da kullanacağımız PropertyGrid kontrolüne CustomAttribute(true) olan property leri göstermesini aşağıdaki gibi belirtmemiz gerekir.
 
Attribute[] aList = new Attribute[1];
aList[0] = new CustomAttirbute(true);
propertyGrid1.BrowsableAttributes = new AttributeCollection(aList);
BaseControl c = new ConcreteControl();
propertyGrid1.SelectedObject = c;
 

Tam Sayfa
Tags .net,
Kategoriler c#.net
İşlemler
Bu Makale 1  Kez Beğenildi.
İsim :    
e-Mail :    
Web Site :  
İmage :  
Güvenlik Kodu :  

Güvenlik Resmi
Resmi Yenile
    
Yorum :  
Tasarım Desenleri ve Mimarileri