Όταν έχεις ένα σενάριο με Master view και Details view, λογικό είναι να θες να διαχειρίζεσαι τις εγγραφές της λίστας στο Master: να προσθέτεις, να αλλάζεις, να διαγράφεις κλπ. Κοιτάξτε εδώ λοιπόν τι συμβαίνει:
Στο Master view υπάρχει ένα ListView με GridView, που γίνεται bind σε μια ωραία ObservableCollection. Σ'αυτό δεν φαίνονται όλες οι ιδιότητες (θα'ναι καμιά τριανταριά) αλλά μερικές μόνο.
Υπάρχουν δυο κουμπιά - και κάποια άλλα, αλλά δεν μας απασχολούν προς το παρόν - , Add και Edit, τα οποία κάνουν bind σε αντίστοιχες commands. Η κάθε command σηκώνει ένα event - μην ανατριχιάζετε, και τα events έχουν ψυχή! - των οποίων οι handlers βρίσκονται στο code behind της Master View.
To Details view έχει δύο κουμπιά , OK και Cancel, τα οποία, μέσω commands και πάλι, ρίχνουν αντίστοιχα events και επιστρέφουν το DialogResult της Details view.
Μέχρις εδώ,θαυμάσια. Το Add δουλεύει μια χαρά: ανοίγει το παράθυρο, κάνω τα δικά μου και, με το που πατήσω ΟΚ, κλείνει το παράθυρο και περνάει μια καινούρια γραμμή στο ListView.
To Edit όμως μου τα χαλάει. Όταν ανοίγει το παράθυρο και κάνω μια αλλαγή, την βλέπω κατευθείαν στο ListView από πίσω, και το κουμπί OK δεν κάνει τίποτα.
Σας κούρασα και συγνώμη. Αλλά, μπορεί κάποιο καλό παιδί να μου εξηγήσει, με όσο πιο απλό τρόπο γίνεται, γιατί συμβαίνει αυτό και πως να το λύσω;