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

 

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

Διακριτά AddNEW() CommitNew() σε ένα datacontext

Îåêßíçóå áðü ôï ìÝëïò tarasiadis. Τελευταία δημοσίευση από το μέλος Markos στις 25-01-2010, 22:00. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-01-2010, 13:41 56639

    Διακριτά AddNEW() CommitNew() σε ένα datacontext

    Δεν ξέρω πως να περιγράψω τον τίτλο του προβλήματος. Ελπίζω να το αναλύσω αρκετά παρακάτω για να βρω την λύση.

    Έχω δημιουργήσει ένα dbml (datacontext) για να μπορώ να κάνω databinding στα πεδία που θέλω με τους πίνακές μου. Όλα είναι ΟΚ μέχρι εδώ.

    Έχω δημιουργήσει πολλαπλά usercontrols ένα για κάθε φόρμα που εμφανίζεται στον χρήστη. πχ ένα για την καταχώρηση πελάτη, ένα για την καταχώρηση task κλπ. Τα συγκεκριμένα usercontrols τα φωρτώνω με χρήση των xamDockManager και xamTabControl του http://www.infragistics.com/dotnet/netadvantage/wpf.aspx#Overview. Αν και δεν νομίζω πως παίζει ρόλο με το ποια controls τα φωρτώνω, το αναφέρω μήπως και βοηθήσει κάπου.

    Το θέμα είναι τώρα, ότι όταν ανοίγω ένα usercontrol στο πλαίσιο των tabs της εφαρμογής μου και συπληρώσω την  φόρμα μου, και στην συνέχεια ανοίξω και άλλο ένα usercontrol, θα χαθούν τα δεδομένα του πρώτου. Έχω εντωπίσει το πρόβλημα στον συνδιασμό AddNew() CommitNew() που κάνω στο datacontext της εφαρμογής μου. Αυτός ο συνδιασμός εκτελείται πριν το άνοιγμα κάθε νέου usercontrol για να μπορέσω να επικοινωνήσω με το usercontrol μου. Ωστόσο παρατειρώ ότι αν κ εγώ εκτελώ τις εντολές αυτές για το συγκεκριμένο usercontrol, αυτό φαίνεται να καλεί το γενικό datacontext με αποτέλεσμα να αρχικοποιούνται όλα τα ανοικτά usercontrols.

    Τι θα πρέπει να κάνω;
    • Να έχω πολλαπλά datacontext για κάθε usercontrol μου; Δεν νομίζω! Έχω ένα για όλη την εφαρμογή μου, με διαφορετικά instances για κάθε usercontrol.
    • Πως μπορώ να εκτελέσω τα AddNew() CommitNew() μόνο σε κάποιο usercontrol και όχι σε όλα τα ανοιχτά;
    • Υπάρχει κάποιος άλλος τρόπος AddNew() CommitNew();
    Ευχαριστώ για την όποια βοήθεια και ελπίζω να περιέγραψα το πρόβλημα σωστά.


  •  25-01-2010, 22:00 56671 σε απάντηση της 56639

    Απ: Διακριτά AddNEW() CommitNew() σε ένα datacontext

    Η αλήθεια είναι πως δεν έχω καταλάβει και πολλά πράγματα από την περιγραφή του προβλήματος. Δε χρησιμοποιώ τα controls της Infragistics, οπότε δε γνωρίζω αν κάτι δεν πάει καλά μ' αυτά (το θεωρώ απίθανο σενάριο). Μήπως θα μπορούσες να αναπαράγεις το πρόβλημα για ένα από τα user controls σου και να μας παρουσιάσεις λίγο κώδικα; Ή καλύτερα, αν δε θες να εμφανίσεις τον κώδικα για ένα ολόκληρο control, φτιάξε ένα custom control με ένα μόνο property, δημιούργησε ένα project στο οποίο να αναπαράγεται το σφάλμα και ανέβασέ το στο DNZ. Φυσικά, χωρίς τη χρήση των controls της Infragistics.
    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems