Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Properties ordering

Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος axaros στις 27-01-2007, 10:42. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-01-2007, 20:35 24055

    Properties ordering

    Γεια χαρά σε όλους !!
    Πως θα θέσω order στα properties ενός object στη C#;
    Πάνος Αβραμίδης
  •  25-01-2007, 23:34 24065 σε απάντηση της 24055

    Απ: Properties ordering

    Δηλαδή;
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  26-01-2007, 15:02 24108 σε απάντηση της 24055

    Απ: Properties ordering

    Θέλεις να ορίσεις custom τρόπο ταξινόμησης σε property grid μήπως;

    Νατάσα Μανουσοπούλου
  •  26-01-2007, 16:35 24114 σε απάντηση της 24108

    Απ: Properties ordering

    Ακριβώς Νατάσα !


    Πάνος Αβραμίδης
  •  26-01-2007, 16:46 24115 σε απάντηση της 24114

    Απ: Properties ordering

    Το φοβόμουνα ότι αυτό θέλεις Smile

    Το PropertyGrid ταξινομεί τα properties με δύο τρόπους:
    1. Όταν δείχνει τα properties μόνο ενός αντικειμένου (SelectedObject), τότε τα ταξινομεί κατά αλφαβητική σειρά του Name που δίνει ο PropertyDescriptor.
    2. Όταν δείχνει "συγχωνευμένα" τα properties πολλών αντικειμένων (SelectedObjects) τότε χρησιμοποιεί το PropertyDescriptor.DisplayName για να τα ταξινομήσει.
    Προφανώς ο σκοπός αυτών των δύο διαφορετικών προσεγγίσεων είναι να σπάνε τα νεύρα των ταλαίπωρων developers και δεν έχει άλλη πρακτική λειτουργικότητα.

    Αυτό που εμφανίζεται σαν όνομα του property είναι το PropertyInfo.Name.

    Άρα, θέλεις:
    • Να φτιάξεις δικό σου derived class του PropertyDescriptor που κάνει override το Name και το DisplayName και τα επιστρέφει με τέτοιο τρόπο ώστε να ταξινομούνται όπως θέλεις. Σε δικό μου ανάλογο πρόβλημα (γιατί προφανώς το έχω φάει στα μούτρα το ζήτημα) έβαζα μπροστά από το κείμενο έναν αριθμό π.χ. "60 - Συνολικές εισφορές" κλπ. Όμως στο συγκεκριμένο project αυτά τα νούμερα είχαν νόημα και δεν ήταν απλά ένας α/α.
    • Να υλοποιήσεις στην κλάση σου το interface System.ComponentModel.ICustomTypeDescriptor.
    • Να καλέσεις παντού την υλοποίηση της base class, εκτός από τις GetProperties(...), στις οποίες πρέπει να αρχικοποιείς ένα collection με τα MyPropertyDescriptor με τα properties σου (εκμεταλλευόμενος ίσως την base class).
    HTH

    Νατάσα Μανουσοπούλου
  •  27-01-2007, 10:42 24129 σε απάντηση της 24115

    Απ: Properties ordering

    Είσαι άψογη !!
    Ευχαριστώ πολύ ...

    Θα επανέρθω αν κολλήσω ...


    Πάνος Αβραμίδης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems