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 :

[WPF] databinding et tri


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut [WPF] databinding et tri
    Salut
    J'essai de suivre cet exemple

    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
     
    <Window.Resources>
            <local:Animals x:Key="animals"/>
     
            <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource animals}, Path=AnimalList}">
                <CollectionViewSource.GroupDescriptions>
                    <PropertyGroupDescription PropertyName="Category"/>
                </CollectionViewSource.GroupDescriptions>
            </CollectionViewSource>
     
            <DataTemplate x:Key="animalTemplate">
                <TextBlock Text="{Binding Path=Name}" Foreground="MediumSeaGreen"/>
            </DataTemplate>
    </Window.Resources>
     
        <ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" ItemTemplate="{StaticResource animalTemplate}"/>
    En fait, je fais un album photos via un fichier XML (databinding). Voici un exemple de ce fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    < Application >
      < Albums >
        < Album name="Default" auteur="default">
          < Photo> 
            < Name >titi< / Name >
            < Image >D:\Wallpaper\As_cold_as_silence_2.jpg< / Image >
          < / Photo >
        < / Album >
        < Album name="test" auteur="Nous" >
            ..................
        < / Album >
      < / Albums >
    < / Application >
    J'ai deux listbox dans un grid (contenant ce datacontext : XPath=/Application/Albums/Album)
    Une des listes box contient le nom des albums (on l'appellera LA) et quand je choisi sur un album la seconde liste (on l'appellera LP) affiche la liste des photos que l'album contient. Je fais ca en passant par un Datatemplate. Voila le code de LA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <DataTemplate x:Key="AlbumTemplate1">
    	<StackPanel>
    		<TextBlock Text="{Binding Mode=OneWay, XPath=@name}"/>
    	</StackPanel>
    </DataTemplate>
    Et le code de LP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <DataTemplate x:Key="PhotoTemplate">
    	<StackPanel>
    		<TextBlock Text="{Binding Mode=OneWay, XPath=Name}" TextAlignment="Center"/>
    		<Border BorderBrush="Black" BorderThickness="4" CornerRadius="5" Margin="6">
    			<Image Width="100" Height="100" Source="{Binding Mode=OneWay, XPath=Image}"/>
                              </Border>
                 </StackPanel>
    </DataTemplate>
    Maintenant je veux integrer du tri. Donc imaginons que j'ai un button qui quand je click dessus, il me tri LP. Le probleme avec l'exemple au debut de ce post c'est que d'une part toutes les photos sont affichees (de tous les albums) et d'autre part quand je choisi un autre album rien ne se passe (pas de changement de photos).

    Et c'est normal puisque que l'itemSource de ma listbox est lie au CollectionViewSource lui meme lie a ma source XML (directement).

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    < CollectionViewSource x:Key="NameView" Source="{Binding Source={StaticResource PhotosXMLSource}, XPath=/Application/Albums/Album/Photo}" > 
       < CollectionViewSource.SortDescriptions > < cmortDescription PropertyName="Name" Direction="Ascending" /> 
       < /CollectionViewSource.SortDescriptions > 
    < / CollectionViewSource >
    Donc j'ai essayer d'integrer mon template au CollectionViewSource pour qu'il choisissent les donnees de mon databinding. (mais je dois peut etre faire l'inverse c'est a dire integrer le tri dans mon template)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    < CollectionViewSource x:Key="NameView" Source="{Binding Source={StaticResource PhotoTemplate}" >
    et la listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <listbox ... ItemsSource="{Binding source={static NameView} ...>
    De cette facon ca ne fonctionne pas il ne trouve pas les donnees et n'affiche donc pas les photos.

    Est ce que quelqu'un peut m'aider ??

    Merci par avance

    PS: desole pour la premiere version de ce post illisible.




    --------------------------------------------------------------------------------
    Sincerely

  2. #2
    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
    J'ai rien compris et c'est illisible....

    Tu peux mettre les balise [code ] et [/ code] dans ton post stp ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Par défaut
    Personne n'a compris ce que je raconte, ou personne n'a la réponse ??

    Merci par avance à celui qui pourra m'aider.

Discussions similaires

  1. [WPF] Databinding Treeview WPF
    Par Micky0001 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 16/08/2011, 10h19
  2. [.NET35][WPF][DataBinding]Lier plusieurs combos sur la même source
    Par Excelsior82 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 28/02/2011, 12h13
  3. [WPF] Databinding sur 2 combox
    Par MiniCesc dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 23/09/2010, 16h01
  4. [WPF] Databinding et combinaison de Treeview et Listview
    Par Mythrandil dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 06/03/2009, 14h31
  5. [WPF DataBinding] Binding un peu compliqué
    Par thanatoster dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 16/04/2008, 08h21

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