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 :

[ItemTemplate/TreeListView] Comment afficher du texte, des images + enfants ?


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
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut [ItemTemplate/TreeListView] Comment afficher du texte, des images + enfants ?
    Bonjour,

    J'aimerais tout d'abord savoir si cela est possible, puis si oui avoir une petite indication sur la route a prendre(je demande pas la reponse cash mais ce sont mes 1er projet WPF...)

    J'aimerais, a partir d'un dossier contenant d'autre dossier(et ainsi de suite) afficher un arbre de ses dossier(jusqu'ici pas de problème)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach(string in Directory.GetFiles(MonDossier))
        {
            tmp = new TreeViewItem();
            tmp.Header = string;
            monTreeListView.Items.Add(tmp)
            .......
        }
    avec une petite recurrence si jamais le dossier a des enfants

    le plus difficile est que j'aimerais avoir des mini vignette contenant mes images(qui sont de taille raisonnable 16x16 a 256x256) directement dans mon TreeListView

    exemple:
    definition: imgX-Y => dossier X ; image n° Y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    -> Dossier 1
        -> Dossier 2
            -> img2-1
            -> img2-2
        -> Dossier 3
        -> img1-1
        -> img1-2
        -> img1-3

  2. #2
    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
    A mon avis le mieux est que tu fasses une classe qui représente un dossier ou un fichier, et qui propose une propriété Children et une propriété Image (évaluées par rapport au chemin d'accès). Comme ça tu peux binder les objets racine (les disques par exemple) avec un HierarchicalDataTemplate, et le reste de l'arborescence devrait suivre tout seul...
    Enfin, je dis ça... c'est très théorique, je n'ai pas testé, mais ça doit pouvoir se faire

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    je viens de regarder un exemple d'utilisation et je pense a peut près comprendre l'utilisateur du HierarchicalDataTemplate mais je ne suis pas sur qu'il soit adapter ici. mon soucis majeur et que n'importe quel dossier peut avoir 2 collection

    en effet si on met tout cela sous forme de classe nous aurions

    DossierPrincipal
    - nom
    - List<DossierEnfant>

    DossierEnfant
    - nom
    - List<Image>
    - List<DossierEnfant>


    le HierarchicalDataTemplate serais (a voir l'exemple) parfais pour les listes List<DossierEnfant> mais je ne vois pas comment afficher ma liste d'image...

  4. #4
    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
    Citation Envoyé par TheBlackReverand
    le HierarchicalDataTemplate serais (a voir l'exemple) parfais pour les listes List<DossierEnfant> mais je ne vois pas comment afficher ma liste d'image...
    Je pense que le ItemTemplateSelector peut te permettre de faire ce que tu veux.
    http://msdn.microsoft.com/fr-fr/libr...eselector.aspx

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par binoo Voir le message
    Je pense que le ItemTemplateSelector peut te permettre de faire ce que tu veux.
    http://msdn.microsoft.com/fr-fr/libr...eselector.aspx

    Ca me semble pas mal, en effet

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    ok donc se dernier utilise comme ressource une fonction ecrite en C# qui recupere l'item, effectue des test, en fonction de ceux ci va rechercher un DataTemplate specifique et le renvoy

    mais j'ai encore et toujours un problème


    il ne veut pas trouver ma class comme une ressource...
    et de plus un element(AuctionItem) n'est pas reconnus...j'ai pourtant bien ajouter PresentationFramework.dll

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        public class auctionItemDataTemplateSelector : DataTemplateSelector
        {
            public override DataTemplate SelectTemplate(object item, DependencyObject container)
            {
                if (item != null && item is AuctionItem)
                {
                    AuctionItem auctionItem = item as AuctionItem;
                    Window window = Application.Current.MainWindow;
     
                    switch (auctionItem.SpecialFeatures)
                    {
                        case SpecialFeatures.None:
                            return
                                window.FindResource("AuctionItem_None")
                                as DataTemplate;
                        case SpecialFeatures.Color:
                            return
                                window.FindResource("AuctionItem_Color")
                                as DataTemplate;
                    }
                }
     
                return null;
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Window x:Class="VisionneuseImage.winVisionneuse"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="The Black Reverand - Visionneuse d'Image" Height="500" Width="550">
     
        <Grid>
            <GroupBox Header="Paramétres" Name="gpbParametres" Height="91" VerticalAlignment="Top" Margin="10,10,10,0" HorizontalContentAlignment="Left" Padding="10">
                <TextBox Height="23" Name="txtDossier" Width="224" HorizontalAlignment="Left" VerticalAlignment="Top">C:\MES DONNEES\image lib temp</TextBox>
            </GroupBox>
            <TreeView Margin="10,136,200,10" Name="trvListSousDossier" ItemTemplateSelector="{StaticResource auctionItemDataTemplateSelector}" />
        </Grid>
    </Window>
    PS: le contenu de la fonction overrider et une simple copie de msdn, elle n'est pas encore personnaliser a mon projet


    merci a vous tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/06/2011, 01h57
  2. Réponses: 6
    Dernier message: 12/03/2010, 11h19
  3. Comment afficher en boucle des images d'un répertoire
    Par Alexandrebox dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 20/11/2008, 17h41
  4. [WebForms][Xml][Xsl] Comment eviter un décalage des images ?
    Par ekmule dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/12/2005, 15h07
  5. Comment afficher du texte avec swing ?
    Par meda dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 27/10/2004, 14h35

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