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

 

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

Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control

Îåêßíçóå áðü ôï ìÝëïò George J. Capnias. Τελευταία δημοσίευση από το μέλος George Parissis στις 12-03-2011, 12:13. Υπάρχουν 19 απαντήσεις.
Σελίδα 2 από 2 (20 εγγραφές)   < 1 2
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-03-2011, 21:22 64079 σε απάντηση της 64059

    Απ: Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control -

    KelMan:
    Γιατί το παιδεύεις τόσο πολύ; Αν θυμάμαι καλά, το DataGridView τσιμπάει αυτόματα το IDataErrorInfo οπότε δεν θα έχεις πρόβλημα. Δοκίμασέ το σε ένα proof-of-concept να δεις...

    Ως προς την έξυπνη σχεδίαση, εννοούσα (μιας και χρησιμοποιήσεις Τ4) να βάλεις partial classes και να υλοποιούνται έτσι κι αλλιώς τα IEditableObject, κλπ ώστε αν απαιτηθεί κάποιος να μπορεί με το partial class να προσθέσει εύκολα το απαραίτητο functionality.

    Πάντως, σκοπεύεις να κάνεις edit πάω στο DataGridView; Γενικά εγώ το αποφεύγω όσο μπορώ και προτιμώ να βγάζω child form. Συνήθως φαίνεται εύκολο στην αρχή αλλά σταδιακά έρχονται απαιτήσεις που στο τέλος λες "να είχα βάλει child form να τελείωνα".

    Το παιδεύω - το παιδεύω, γιατί ετοιμάζομαι να στήσω επάνω σε αυτό ένα project που "θα τρέξει" για τουλάχιστον 5 χρόνια, αν όχι και περισσότερο. Αν βάλεις ότι έχω και εκπαιδεύω 2 άτομα σε .NET για αυτό το σκοπό, και θα ακολουθήσουν ακόμα 2, θέλω να είμαι πολύ σίγουρος ότι δεν μου έχει ξεφύγει κάτι.

    Επειδή το proof-of-concept δουλεύει πολύ ωραία με την Northwind, και η υλοποίηση είναι σχεδόν ασήμαντη, και αυτοματοποιτείται με ελάχιστο κόπο, είναι και ο λόγος που το θεωρώ "too good to be true".

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  09-03-2011, 22:23 64080 σε απάντηση της 64079

    Απ: Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control -

    Χα χα, μου φαίνεται ότι δουλεύεις πολύ edge τεχνολογίες και σου κακοφαίνονται οι καθιερωμένες ευκολίες των τεχνολογιών που παίζουν εδώ και χρόνια!

     


    Vir prudens non contra ventum mingit
  •  10-03-2011, 01:50 64082 σε απάντηση της 64060

    Απ: Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control -

    Markos:

    Όσον αφορά στο validation, τα πράγματα είναι απλά. Ένα σχετικό άρθρο είναι το Simple Validation with LINQ to SQL classes, της Beth Massi. Μία γενικότερη εισαγωγή πάνω στο θέμα του custom object binding προσφέρουν αυτά τα εισαγωγικά videos. Για πιο προχωρημένα πράγματα, όπως multicolum filtering μπορεί κανείς να ανατρέξει σ' αυτό το άρθρο. Επίσης, μια χρήσιμη πηγή είναι κι αυτή.

    Ευχαριστώ για τα pointers - ιδιαίτερα το Windows Forms Documentation Updates blog είναι εκπληκτικό τι έχει μέσα και πόσα whitepapers παραβάλει μέσα από το MSDN Library, καθώς και το προσωπικό site του Michael Weinhardt με συνδέσμους για τα άρθρα του. Πρέπει να πω ότι πέρασα 5 υπέρoχες ώρες...

     

    George J.
     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  10-03-2011, 01:53 64083 σε απάντηση της 64080

    Απ: Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control -

    KelMan:
    Χα χα, μου φαίνεται ότι δουλεύεις πολύ edge τεχνολογίες και σου κακοφαίνονται οι καθιερωμένες ευκολίες των τεχνολογιών που παίζουν εδώ και χρόνια!

    Δεν είναι κρυφό ότι μετά το 2000 δεν έχω ασχοληθεί καθόλου με φόρμες - κατά βάση ότι έχω κάνει από εκεί και πέρα είναι μόνο Web. Οπότε Windows Forms με .NET Framework ουσιαστικά είναι πρώτη φορά που ασχολούμαι και προσπαθώ να πάω σε βάθος...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  12-03-2011, 12:13 64146 σε απάντηση της 64083

    Απ: Windows Forms data-binding με BindingSource control & Validation με ErrorProvider control -

    Βάθος δεν υπάρχει, τα πράγματα είναι πολύ απλά. Το θέμα είναι ότι έχεις καιρό να ασχοληθείς. Υλοποιείς ένα, δύο ή και περισσότερα interfaces ανάλογα με αυτό που θέλεις να κάνεις και τα υπόλοιπα τα αναλαμβάνει το DataBinding. Και αν στο project που έχεις σκοπό να κάνεις χρησιμοποιείς και controls τρίτων κατασκευαστών τότε μπορεί να γλυτώσεις και μερικές υλοποιήσεις παραπάνω.

    Γράψε implementation για το INotifypropertyChanged & IDataErrorInfo και για τα υπόλοιπα βλέπεις και κάνεις. Αυτό είναι το βασικό σενάριο που όπως είπα θα σε εξυπηρετήση στο μεγαλύτερο ποσοστό των περιπτώσεων. Όσο για το IEditableObject γνώμη μου είναι πως είναι ένα προβληματικό Interface. Θα συνιστούσα στην περίπτωση αυτή να φτιάξεις ένα δικό σου μηχανισμό για να κρατάς της original τιμές των πεδίων σου. Θα αναφέρω ένα κοινό παράδειγμα για να καταλάβεις για πιο λόγο το λέω αυτό.

    Ας υποθέσουμε ότι έχουμε ένα grid το οποίο έχει κάποιες εγγραφές. Κάθε φορά που κάνεις navigation στα rows του grid ο μηχανισμό DataBinding καλεί την BeginEdit & EndEdit για κάθε row στο οποίο πας και από το οποίο φεύγεις. Αυτό σημαίνει πως αν κάνεις μία αλλαγή σε ένα row και φύγεις από το συγκεκριμένο row ο μηχανισμός DataBinding θα καλέσει την EndEdit οπότε θα θεωρήσει πως οι τρέχουσες τιμές των πεδίων σου είναι και οι αρχικές. Αυτό όμως δεν είναι το ζητούμενο. Το ζητούμενο είναι αν ο χρήστης θελήσει στην πορεία για ένα row να αναιρέσει τις αλλαγές που έχει κάνει θα θέλει να δει στο συγκεκριμένο row τις τιμές που διάβασε από την βάση ή αυτές που υπήρχαν την τελευταία φορά που πάτησε αποθήκευση κάτι όμως που με το IEditableObject δεν γίνεται. Βέβαια στην περίπτωση αυτή θα μπορούσε κάποιος να αναφέρει τον μηχανισμό του Refresh. Δηλαδή αν θέλει ο χρήστης να αναιρέσει αλλαγές που έχει κάνει στο Grid να πατήσει το Refresh και όχι το Undo ας πούμε. Υπάρχει όμως διαφορά μεταξύ Refresh και Undo. Στο σενάριο όπου η εφαρμογή είναι Single User καμία αλλά σε Multi user υπάρχει.

    Επίσης σχετικά με το IDataErrorInfo όλα τα controls είναι σε θέση να κάνουν ένα validation σε επίπεδο Data Type. Δηλαδή εκεί που ο μηχανσιμός περιμένει ημερομηνία να μην περάσουμε αλφαριθμητικό, όμως όπως είναι φυσικό δεν μπορούν να κάνουν BusinessValidation. Δηλαδή θέλω για παράδειγμα οι ημερομηνίες που θα δίνω στο χι πεδίο να είναι πάντα μελλοντικές ή το email που γράφω να είναι σωστό ή οτιδήποτε άλλο.

    Αυτά.

Σελίδα 2 από 2 (20 εγγραφές)   < 1 2
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems