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 :

Rafraichissement listview xna/wpf


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut Rafraichissement listview xna/wpf
    Bonjour j'ai une liste vue dans mon xaml comme ceci

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <ListView x:Name="Properties" Margin="0,41,8,255" 
    					BorderThickness="0" Background="#FFF1F1F1" 
    					HorizontalAlignment="Right" Width="247" Grid.RowSpan="2">
    	<ListBox.ItemTemplate>
    		<DataTemplate>
    			<StackPanel Orientation="Horizontal">
    				<Label Content="{Binding Key}" />
    				<TextBlock xml:space="preserve"></TextBlock>
    				<TextBox Text="{Binding Value}"></TextBox>
    			</StackPanel>
    		</DataTemplate>
    	</ListBox.ItemTemplate>
    </ListView>

    Je bind dessus une collection de XmlAttribute

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.Properties.ItemsSource = new ObservableCollection<XmlAttribute>(selected.Attributes);

    Le probleme est lorsque je change la valeur des attributs via la fenetre XNA, cela ne se repercute pas sur celle lisview.

    Exemple concret:

    J'ai une entite dans ma vue xna, dans la partie WPF est affiche sa position, lorsque je bouge l'entite en drag & drop sa position change bien mais cela n'impacte la liste view que si j'appelle explicitement ->items->refresh() par exemple.

    Merci de vos reponses.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Pour que les modifications apportés sur tes objets soient répercutés sur l'interface, il faut que tes objets implémentent INotifiPropertyChanged.

    Qu'en est-il de tes entités XNA ? Est-ce que que ce sont des objets que tu maitrises ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ne bind pas directement les XmlAttribute ; comme indiqué par binoo, ils n'implémentent pas INotifyPropertyChanged.

    Crée plutôt une classe spécifique qui implémente INotifyPropertyChanged, et travaille sur cette classe (un ViewModel dans la méthodologie MVVM). Tu peux toujours reconvertir ça en XML par la suite

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re
    Merci de vos reponses.

    Cependant j'ai juste un petit soucis.
    Ce que je code est un editeur de jeu qui utilise les classe du jeu.
    Avec wpf pour l'editeur et XNA pour le jeu.

    L'editeur a connaissance du jeu mais pas l'inverse.

    Donc en gros lorsque je drag & drop mon objet dans mon espace XNA ce n'est que du code XNA qui est utilise.
    Je veux dire par la que je ne peux pas faire un raiseevent sur une property.

    Le probleme est que toutes les donnees sont dans le projet XNA et que WPF est vraiment juste la pour l'affichage et de la modification.

    Mais le projet XNA ne doit pas contenir de reference WPF.

    Merci si vous avez une idee pour proceder.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je suis pas sûr d'avoir tout compris...
    Si tu appliques le pattern MVVM, pas besoin de toucher au modèle ; tu prends le modèle de ton jeu, tel quel, et tu crées une couche ViewModel qui va servir d'adapteur entre le modèle et le vue.

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re
    Dans le concept je veux bien mais sur les tutoriels que je feuillette je vois que c'est le modele qui herite de INotifyPropertyChanged.

    Hors mon modele c'est le code XNA et je ne veux pas y meler du WPF.

    Merci

    Edit: En lisant le lien que tu m'a donne je vois que c'est le view model qui implemente inotify...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Remplir des tables à partir d'une listview [C# WPF LINQ]
    Par ExKira dans le forum Linq
    Réponses: 0
    Dernier message: 18/03/2015, 14h48
  2. [Android] - Problème rafraichissement Listview
    Par devJavaJEE dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 20/05/2014, 12h01
  3. Lire des données dans un ListView en wpf
    Par Invité dans le forum C#
    Réponses: 4
    Dernier message: 13/12/2013, 14h54
  4. Rafraichissement ListView variable dyamique
    Par Atanvarno dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 29/04/2013, 09h37
  5. Problème de rafraichissement d'un listview
    Par seroa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/11/2005, 09h05

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