Δεν ξέρω πως να περιγράψω τον τίτλο του προβλήματος. Ελπίζω να το αναλύσω αρκετά παρακάτω για να βρω την λύση.
Έχω δημιουργήσει ένα 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();
Ευχαριστώ για την όποια βοήθεια και ελπίζω να περιέγραψα το πρόβλημα σωστά.