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 :

Connaitre l'activité graphique


Sujet :

Silverlight

  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut Connaitre l'activité graphique
    Hello tout le monde

    J'aimerais savoir s'il est possible de savoir que l'UI n'effectue aucun traitement à un moment T?

    J'ai un DataGrid avec 30 colonnes et potentiellement qqs milliers de ligne.
    J'ai des converters pour setter le background et le foreground des cellules suivant les valeurs de mes objets bindé.

    Comment je pourrais détecter que le grid a fini d'appliquer tous ses converters?

    Thx

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    J'ai un DataGrid avec 30 colonnes et potentiellement qqs milliers de ligne.
    J'ai des converters pour setter le background et le foreground des cellules suivant les valeurs de mes objets bindé.

    Comment je pourrais détecter que le grid a fini d'appliquer tous ses converters?

    Si t'as des milliers de lignes bindées à ta datagrid je ne pense pas que toutes ces lignes soient affichées c-à-d visible par l'utilisateur. Par exemple seules les 20 premières seront visibles en attendant que l'utilisateur scrolle pour le reste. C'est là qu'intervient la virtualisation, si tu l'as activée, tes converters et autres ne concerneront que les lignes visibles. Au fur à mesure du scrolling de l'utilisateur, les converters s'appliqueront aux lignes qui s'affichent.

    Bon pour résumé, si tu utilises la virtualisation alors tes converters ne s'exécuteront que pour les lignes visibles dans la DataGrid en attendant que les autres lignes soient visibles.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Bon pour résumé, si tu utilises la virtualisation alors tes converters ne s'exécuteront que pour les lignes visibles dans la DataGrid en attendant que les autres lignes soient visibles.
    Est-ce que seules les colonnes visibles sont également exécutées?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Vu que le rendu visuel d'une ligne n'est effectué que si cette ligne est visible à l'utilisateur. Or vu que tes converters agissent sur le rendu visuel alors j'en déduis qu'ils seront pas exécutés. Tu peux mettre dans l'implémentation de ton converter l'instruction Debug.WriteLine(i) où i est un membre statique incrémenté après chaque passage. Quand l'UI sera totalement chargé alors tu regardes la fenêtre de sortie pour voir la valeur finale de i si elle est égale ou non au nombre de ligne total bindées à ta grid

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est ce que j'ai fais
    1 converter par cellule
    Au total: 30 colonnes et 100 lignes
    A l'écran 7 colonnes et 30 lignes

    Appels au converter: 1600 et des poussières

  6. #6
    Invité
    Invité(e)
    Par défaut
    T'es sûr que la virtualisation est activée ?

    Sinon la pagination est là

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    T'es sûr que la virtualisation est activée ?
    Si elle est activée par défaut, oui. Sinon, non

    Citation Envoyé par h2s84 Voir le message
    Sinon la pagination est là
    Mes clients n'en veulent pas apparemment

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2007
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 677
    Par défaut
    Si elle est activée par défaut, oui. Sinon, non
    Ça m'étonnerait que la virtualisation soit activée par défaut sous Silverlight (ça n'était pas le cas en WPF en tout cas).

    pour activer la virtualisation sur ton ItemControls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VirtualizingStackPanel.IsVirtualizing="true"
    Après tu as deux modes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VirtualizingStackPanel.VirtualizationMode="Recycling"
    &
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VirtualizingStackPanel.VirtualizationMode="Standard"

  9. #9
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Le DataGrid est virtualisé par défaut en Silverlight sur les lignes (comme en WPF il me semble).
    Je ne pense pas qu'il y ait en revanche virtualisation sur les colonnes.

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    A noter que des composants tiers comme telerik peuvent proposer des fonctionnalités avancées comme une virtualisation sur les lignes et les colonnes ainsi qu'un chargement des lignes à la demande.

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    VirtualizingStackPanel.IsVirtualizing est en read only

  12. #12
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    A noter que des composants tiers comme telerik peuvent proposer des fonctionnalités avancées comme une virtualisation sur les lignes et les colonnes ainsi qu'un chargement des lignes à la demande.
    On peut facilement décompiler leur code?

  13. #13
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    On peut facilement décompiler leur code?
    Pas essayé mais sinon il y a moyen (moyennant quelques sesterces) qu'ils te filent le code. Mais interdit de copier

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/05/2008, 19h41
  2. Connaitre carte graphique
    Par Tail dans le forum Debian
    Réponses: 1
    Dernier message: 21/08/2007, 17h54
  3. comment connaitre le temps que met mon affichage graphique ?
    Par poulette3000 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 14/06/2007, 16h21
  4. Réponses: 10
    Dernier message: 28/10/2006, 15h45
  5. Connaitre l'activité du disque
    Par Leobaillard dans le forum Delphi
    Réponses: 2
    Dernier message: 28/08/2006, 09h49

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