12 Απριλίου 2006

Ελληνικό displayname στα properties ενός Class

Kάθε Class που δημιουργούμε περιγράφεται από τον System.ComponentModel. Typedescriptor με τα shared methods του (πχ GetProperties).


Κάθε property του Class περιγράφεται από τoν System.Componentmodel.propertyDescriptor και τα properties του (πχ DisplayName, Description).

Κάθε member (property, method, event κλπ) του Class μπορεί έχει διάφορα Attributes τα οποία διαβάζει ο TypeDescriptor για να περιγράψει το Class.


ΠΧ. Η περιγραφή ενός property στο propertyGrid συμπληρώνεται από το Attribute System.Componentmodel.Description(<Description>).
Αν ο
PropertyDescriptor βρεί αυτό το attribute το εμφανίζει στην περιγραφή στο property Grid.


Ενα άλλο πολύ σημαντικό Atrribute είναι ο TypeConverter.


Αυτό το χρησιμοποιούμε κυρίως στα Custom Collections για να μπορεί ο Collection Editor να περιγράψει τα Collection Items. (Σε κάποιο άλλο post θα προσπαθήσω να καλύψω αυτό το πολύ σημαντικό κομμάτι)


Εγώ χρησιμοποιώ αυτό το σενάριο για να μπορώ να δίνω στους χρήστες των εφαρμογών μου δυνατότητες παραμετροποίησης. Δημιουργώ κάποια Classes πχ Report properties και σε ένα propertyGrid Control αφήνω τον χρήστη να συμπληρώσει τα properties, τα οποία όμως είναι φιλικά σε αυτόν και κυρίως ΕΛΛΗΝΙΚΑ.


Μπορείτε να δείτε και να κατεβάσετε τον πλήρη κώδικα και το TestProject από το σχετικό post μου στο DotNetZone.gr http://www.dotnetzone.gr/cs/forums/7669/ShowPost.aspx