IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Sauver le contenu d'un panel entre deux exécutions


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Sauver le contenu d'un panel entre deux exécutions
    Bonjour à tous,

    Je suis un peu perdu pour commencer mon control (d'ailleurs dois-je écrire un control ?).

    Je souhaite ajouter, enlever et positionner des controls "maisons" dans un panel. L'idée est que mon utilisateur puisse composer son propre écran contenant des informations choisies par lui et placées par lui.

    Je me pose maintenant le problème suivant : comment sauver la liste des controls choisis et leurs positions entre deux exécutions ?

    Avant de partir dans le developpement d'un CustomPanel avec serialisation du contenu ( la solution bourrine first) je souhaiterais savoir si certains parmi vous ont déjà rencontré ce besoin (composition d'une "page" par l'utilisateur final) et comment y avez vous répondu ?

    Raphael

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    bin tu stock dans un objet créé a part le type, le X et Y et à la rigueur d autres choses (contenu ?).

    tu serialise la liste de tous ces objets dans un fichier xml par exemple

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    ok. Point de solution élégante donc.

    Je sérialise le contenu de mon panel et je reconstruit tout en déserialisant ..

    il n'y pas une possibilité pour sauver un xaml et charger un xaml ? parce que mon layout sérialisé va quand meme beaucoup ressembler à du xaml au final ...

    R.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Raphael77222 Voir le message
    il n'y pas une possibilité pour sauver un xaml et charger un xaml ?
    Hum... ca: http://msdn.microsoft.com/en-us/libr...amlwriter.aspx et http://msdn.microsoft.com/en-us/libr...amlreader.aspx peut-être ?

  5. #5
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Citation Envoyé par Raphael77222 Voir le message
    ok. Point de solution élégante donc.

    Je sérialise le contenu de mon panel et je reconstruit tout en déserialisant ..
    Tu m'a mal lu je ne t ai pas di de sérialiser les contrôle de ton panel mais uniquement les données clefs (X,Y,Name, ...) de tes controls apres tu peux mettre ca dans une zone spécifique a l utilisateur (IsolatedStorage?).

    Je ne vois pas en quoi c'est mal propre ce genre de solutions de stockage sont fait pour cela

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci,

    Je reviendrai vers vous avec la solution que j'aurai adoptée.. Y'a du pour et du contre dans chacun des options présentées ici.

    R.

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Salut,

    J'avais eus ce genre de problématique il y quelque temps. Un ami à moi avait fait des recherches, et on était partis sur la piste suivante (avec l'aide de l'excellent DrWPF ensuite):

    1. On décrit nos "vues" dans un fichier XML
    2. On utilise un ItemsControl pour contenir les élements de nos vues
    3. Ce ItemsControl utilise un DockPanel pour positionner les élements
    4. Dans le XML, on récupère les propriétés Dock et le nom de la page à afficher


    Ca fonctionne très bien et je trouve la solution élégante. J'ai ensuite développer une petite animation pour pouvoir passer d'une vue à l'autre avec un joli effet

    Tu trouveras plus de détails dans le post original ici (en anglais).

Discussions similaires

  1. différents résultats entre deux exécution.
    Par fan_diana dans le forum Signal
    Réponses: 5
    Dernier message: 20/09/2012, 21h31
  2. [RegEx] Récupérer le contenu d'une chaine entre deux séparateurs
    Par soulryo dans le forum Langage
    Réponses: 2
    Dernier message: 13/08/2008, 14h17
  3. Réponses: 10
    Dernier message: 14/06/2007, 14h27
  4. [RegEx] Supprimer le contenu qui se trouve entre deux délimiteurs
    Par goldyfruit dans le forum Langage
    Réponses: 8
    Dernier message: 23/01/2007, 20h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo