public Page_Compte_Rendu(ClassCompteRendu cr) { InitializeComponent(); _cr = cr; DataContext = _cr; //référentiel pour Binding }
private string _statut; // passé/prst/futur #endregion Fields #region Constructors public ClassJour(ClassMission laMission) { _numero = compteurJours++; //laMission._journeeDefaut sera le jour 0 (premier objet instancié) // les prochains jours auront le num correspondant à leur ID _statut = "futur"; // obligatoire pour remplissage journée défaut _mission = laMission; Activites = new List<ClassActivite>(); CompteRendu = new ClassCompteRendu(this); }
//désérialise planning.xml public void LoadPlanning() { XmlDocument xmlDoc = new XmlDocument(); string path = "../../Data/planning.xml"; try { xmlDoc.Load(path); } catch { string message = "Le fichier XML de sauvegarde n'a pas été trouvé dans le répertoire."; MessageBox.Show(message); return; } //récup tous les jours du planning XmlNodeList listJours = xmlDoc.SelectNodes("/Planning/Jour"); //désérialise les 500 jours depuis planning.xml foreach (XmlNode nodeJour in listJours) { ClassJour jour = new ClassJour(this); XmlAttribute numJour = nodeJour.Attributes["numero"]; int index = int.Parse(numJour.Value); //récup toutes les activites du jour correspondant à l'index courant XmlNodeList listActs = xmlDoc.SelectNodes("/Planning/Jour[@numero='" + index + "']/Activite"); foreach (XmlNode nodeAct in listActs) { ClassActivite activite = new ClassActivite(); activite.Date = jour; activite.ListCategories = this.getActivites(); //récupère l'attribut categorie XmlAttribute xml_attr = nodeAct.Attributes["categorie"]; //stocke sa valeur dans la propriété Categorie de l'objet activite.Categorie = xml_attr.Value; //idem pour le reste des attributs/propriétés xml_attr = nodeAct.Attributes["hDebut"]; activite.HeureDebut = double.Parse(xml_attr.Value); xml_attr = nodeAct.Attributes["hFin"]; activite.HeureFin = double.Parse(xml_attr.Value); xml_attr = nodeAct.Attributes["astronautes"]; activite.Astronautes.Add(xml_attr.Value); //decouper la chaine en substring si plusieurs astro xml_attr = nodeAct.Attributes["lieu"]; activite.Lieu.setNom(xml_attr.Value); xml_attr = nodeAct.Attributes["descriptif"]; activite.Descriptif = xml_attr.Value; xml_attr = nodeAct.Attributes["sortieExt"]; if (xml_attr.Value == "true") activite.SortieExt = true; else activite.SortieExt = false; jour.ajouterActivite(activite); } XmlNode nodeCR = xmlDoc.SelectSingleNode("/Planning/Jour[@numero='" + index + "']/CompteRendu"); if (nodeCR != null) { ClassCompteRendu cr = new ClassCompteRendu(jour); //récupère l'attribut titre XmlAttribute xml_attr = nodeCR.Attributes["titre"]; //stocke sa valeur dans la propriété _titre de l'objet cr._titre = xml_attr.Value; //stocke le contenu de la balise dans la propriété _contenu cr._contenu = nodeCR.InnerText; jour.CompteRendu = cr; } _planning.Add(index, jour); } }