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

C# Discussion :

[WPF] Listview, vue personnalisée


Sujet :

C#

  1. #1
    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 [WPF] Listview, vue personnalisée
    Bonjour à tous,

    Je souhaiterai créer des vues personnalisée pour un listview. J'ai trouvé cet example qui marche bien http://blogs.msdn.com/atc_avalon_tea...28/585844.aspx
    mais je voudrai faire la même chose, sans avoir à créer un projet séparer où définir mes vues. Je voudrai tout définir dans mon projet principal.

    J'ai déjà essayé:

    - d'ajouter un nouveau ResourceDictionary à mon projet principal, avec à l'intérieur les styles utilisés pour les vues:

    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
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:l="clr-namespace:Avalon.Demo"
        >
     
      <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageView}"
             TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListBox}}">
    (...)
      </Style>
     
      <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageViewItem}"
             TargetType='{x:Type ListViewItem}' BasedOn='{StaticResource {x:Type ListBoxItem}}'>
    (...)
      </Style> 
     
    </ResourceDictionary>
    Et j'essaye ensuite d'utiliser ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Page xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
          xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
          xmlns:l="clr-namespace:Avalon.Demo">
        <ListView>
          <ListView.View>
            <l:ImageView />
          </ListView.View>
          <ListView.ItemsSource>
            <l:FileCollection />
          </ListView.ItemsSource>
        </ListView>
    </Page>
    Mais ça ne marche pas (mon listview reste invisible). Je pense que quelque chose cloche à cause de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type l:ImageView},ResourceId=ImageView}"
    TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListBox}}">
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected override object DefaultStyleKey
    {
    get
    {
    return new ComponentResourceKey(GetType(), "ImageView");
    }
    }
    puisque justement ici le code est destiné à fonctionner avec une assembly extérieure, mais je ne sais pas comment changer ça...

    Merci d'avance pour votre aide,
    Jérémy

  2. #2
    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
    Tu as essayé de précisé, ici, le nom de ton assembly:

    xmlns:l="clr-namespace:Avalon.Demo"


    ?

  3. #3
    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
    Citation Envoyé par Thomas Lebrun Voir le message
    Tu as essayé de précisé, ici, le nom de ton assembly: xmlns:l="clr-namespace:Avalon.Demo"
    ?
    Hum, ça me donne une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Page xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'
          xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
          xmlns:l="clr-namespace:Avalon.Demo;assembly=CustomApp">
        <ListView>
          <ListView.View>
            <l:ImageView />
          </ListView.View>
          <ListView.ItemsSource>
            <l:FileCollection />
          </ListView.ItemsSource>
        </ListView>
    </Page>
    Error 8 The tag 'ImageView' does not exist in XML namespace 'clr-namespace:Avalon.Demo;assembly=CustomApp'. Line 6 Position 10. C:\Documents and Settings\Jérem\Bureau\CustomView2\CustomView\CustomApp\Window1.xaml 6 10 CustomApp

  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
    Ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    protected override object DefaultStyleKey
    {
    get
    {
    return new ComponentResourceKey(GetType(), "ImageView");
    }
    }
    Tu l'as bien mis dans le même projet (CustomApp) ?

  5. #5
    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
    Oui oui, j'ai maintenant tout dans un seul et même projet.

  6. #6
    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
    Etrange alors, j'ai pas d'idées, sorry

  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
    Problème résolu !

    Il fallait mettre le code suivant dans le AssemblyInfo.cs:

    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
    // Specifies the location in which theme dictionaries are stored for types in an assembly.
    [assembly: ThemeInfo(
        // Specifies the location of system theme-specific resource dictionaries for this project.
        // The default setting in this project is "None" since this default project does not
        // include these user-defined theme files:
        //     Themes\Aero.NormalColor.xaml
        //     Themes\Classic.xaml
        //     Themes\Luna.Homestead.xaml
        //     Themes\Luna.Metallic.xaml
        //     Themes\Luna.NormalColor.xaml
        //     Themes\Royale.NormalColor.xaml
        ResourceDictionaryLocation.None,
     
        // Specifies the location of the system non-theme specific resource dictionary:
        //     Themes\generic.xaml
        ResourceDictionaryLocation.SourceAssembly)]

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

Discussions similaires

  1. [WPF] ListView + gridView : largeur de colonne
    Par JuTs dans le forum Framework .NET
    Réponses: 8
    Dernier message: 12/01/2008, 10h19
  2. [WPF] ListView + MouseDoubleClick
    Par JuTs dans le forum Framework .NET
    Réponses: 4
    Dernier message: 19/11/2007, 17h15
  3. [WPF] Listview tri et databinding
    Par Jérem22 dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 26/09/2007, 14h08
  4. Vue personnalisée et encodage UTF-8
    Par Janitrix dans le forum Zend Framework
    Réponses: 14
    Dernier message: 20/09/2007, 10h34
  5. vues personnalisées sous postgresql
    Par Dev_ps dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 12/06/2007, 11h22

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