2008-09-23 10 views
3

J'ai déjà posté quelque chose de similaire here mais je voudrais poser la question plus générale ici.C# sérialisation et l'événement pour la liaison de données sont perdues

Avez-vous essayé de sérialiser un objet qui implémente INotifyPropertyChanged et de le récupérer à partir de la sérialisation et de le lier à un DataGridView? Quand je le fais, je n'ai pas d'actualisation de la valeur de ce changement (j'ai besoin de minimiser les fenêtres et de l'ouvrir).

Avez-vous un truc?

Répondre

2

Utilisez le DataContractSerializer et créer une méthode pour OnDeserialized

[OnDeserialized] 
private void OnDeserialized(StreamingContext c) {} 

Cela vous permettra de déclencher l'événement PropertyChanged quand désérialisation est terminée

+0

+1: La sérialisation peut être douloureuse. Cela m'a vraiment aidé. –

0

interfaces Sérialisation devient délicate lorsque vous traitez avec des objets qui ont des états internes. Pouvez-vous poster un exemple du code de sérialisation dont vous parlez?

+0

Le problème est que l'objet hérite de l'objet qui héritent d'un autre objet. Tout est très énorme à afficher. Je vais essayer de faire un petit exemple bientôt. –