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

Silverlight Discussion :

[SL4] Détecter et RAZ Datagrid


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut [SL4] Détecter et RAZ Datagrid
    Bonjour,

    J'aimerais dans ma page détecter si un changement a été fait sur un DataGrid de façon assez "générique".
    C'est à dire que je ne veux pas déclencher des évènements pour traiter à l'intérieur si je suis en édition ou pas...

    La 1ère idée est d'hériter du DataGrid et traiter ces évènements dans un composant à part.
    Mais j'ai pas envie d'en hériter, j'aimerais le laisser "tel quel".

    D'ou ma question : existe-t-il une propriété ou un seul événement magique capable de me dire si mon datagrid à été édité (ligne modifiée, supprimée etc..) depuis son chargement ?

    Accessoirement existe-t-il une commande sur le datagrid qui permet de le recharger avec ses données initiales ?

    Je n'ai rien trouvé de tout ça...

    En vous remerciant pour vos réponses,

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par stailer Voir le message
    D'ou ma question : existe-t-il une propriété ou un seul événement magique capable de me dire si mon datagrid à été édité (ligne modifiée, supprimée etc..) depuis son chargement ?
    Tu peux t'abonner au CollectionChanged de la collection qui a rempli ton DataGrid ainsi qu'au PropertyChanged des items.

    Accessoirement existe-t-il une commande sur le datagrid qui permet de le recharger avec ses données initiales ?
    Remettre la collection initiale dans son ItemsSource.

  3. #3
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Ok, j'aurais préféré une propriété "CollectionChanged" mais tant pis.

    Je vais faire un héritage du DataGrid et rajouter une DependencyProperty CollectionChanged que je peux affecter ou récupérer.

    Merci pour ta réponse,

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par stailer Voir le message
    Ok, j'aurais préféré une propriété "CollectionChanged" mais tant pis.

    Je vais faire un héritage du DataGrid et rajouter une DependencyProperty CollectionChanged que je peux affecter ou récupérer.

    Merci pour ta réponse,
    Évite l'héritage. Essaye plutôt avec une propriété attachée (Attached Property).

  5. #5
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Tu es sur que je peux éviter l'héritage ?
    Je viens de regarder les AttachedProperty.. Ok mais dans l'exemple ici :

    http://www.silverlightshow.net/tips/...lverlight.aspx

    Il fait bien un héritage du StackPanel.

    En fait le souci est qu'il faut bien que je lève le CollectionChanged pour déterminer si quelque chose à changer ou pas.

    Et je dois bien ajouter un CollectionChanged pour récupérer la propriété dans un autre traitement.. Ou alors on peut faire autrement ? mais je ne connais pas la méthode

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben tu peux créer 2 attached properties : MyItemsSource (IEnumerable) et CollectionChanged (bool).

    Lorsque MyItemsSource est modifié, d'abord tu set le ItemsSource du DataGrid et ensuite tu t'abonnes à CollectionChanged (si c'est une INotififyCollectionChanged) puis pour chaque item tu t'abonnes à PropertyChanged (si INotifyCollectionChanged).

    Dans chacun des deux events, tu passes le booléen CollectionChanged à true. Cette propriété est bindée en TwoWay sur un booléen de ton ViewModel, qui fait ton action quand il passe à true.

    C'est juste une idée, je sais pas si ça réponds à ton besoin.

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

Discussions similaires

  1. Détecter clic droit sur le header commun (lignes & colonnes) d'un datagrid
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 20/05/2011, 14h07
  2. datagrid : détecter la colonne cliquée
    Par errog dans le forum Flex
    Réponses: 2
    Dernier message: 04/09/2010, 06h49
  3. Détecter Windows 2000 Professionnel
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/11/2006, 23h02
  4. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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