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 RelativeSource findAncestor


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par défaut Wpf RelativeSource findAncestor
    Bonjour à tous

    VOici mon pb

    c'est une question de relativeSource.
    Dans un datagrid j'ajoute dans le header un dropdownbutton (pour gérér un filtre) pour cela je gère le style du DataGridColumnHeader.
    Le relative source du IsOpen du DropDownButton fonctionne correctement.
    PAr contre cela ne fonctionne pas avec la listBox pour accèder au dataContext de mon UserControl

    Code xaml : 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
    26
    27
    28
    29
    30
    31
    <Style x:Key="DataGridColumnHeaderStyle1" TargetType="{x:Type WpfToolKit:DataGridColumnHeader}">
                        <Setter Property="Template">
                            <Setter.Value>
                            <ControlTemplate TargetType="{x:Type WpfToolKit:DataGridColumnHeader}">
                                    <Grid VerticalAlignment="Center" HorizontalAlignment="Stretch">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="25"/>
                                            <RowDefinition Height="*"/>
                                        </Grid.RowDefinitions>
                                        <TextBlock Grid.Row="0" Text="Entête" HorizontalAlignment="Stretch"/>
                                        <Grid Grid.Row="1">                                  <extToolkit:DropDownButton Width="35" IsOpen="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.OpenClose}" Grid.Row="1" Height="20" HorizontalContentAlignment="Left" AllowDrop="True">
                                            <extToolkit:DropDownButton.Content>
                                                <Image  HorizontalAlignment="Left" Margin="0" Name="image1"  VerticalAlignment="Top" Source="/S;component/Resources/filtre2.png" />
                                            </extToolkit:DropDownButton.Content>
                                            <extToolkit:DropDownButton.DropDownContent>
                                                <ListBox SelectedIndex="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.LS}">
                                                    <ListBoxItem Content="Egal"/>
                                                    <ListBoxItem Content="Pas Egal"/>
                                                    <ListBoxItem Content="Inférieur à"/>
                                                    <ListBoxItem Content="Inférieur à ou égal"/>
                                                    <ListBoxItem Content="Supérieur à"/>
                                                    <ListBoxItem Content="Egal"/>
                                                </ListBox>
                                            </extToolkit:DropDownButton.DropDownContent>
                                        </extToolkit:DropDownButton>
                                    </Grid>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>


    Merci de votre aide

    Cdt

    MickeyBond

  2. #2
    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
    Je pense que c'est parce que ton listbox se trouve dans un dropdownbutton qui est aussi un UserControl. Essaye avec un ancestor du type de ton UserControl

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 49
    Par défaut
    Ok si je comprend bien en utilisant un dropDownButton j'imbrique un UserControl dans un UserControl.

    Je ne comprend pas ta réponse :
    Citation Envoyé par GuruuMeditation Voir le message
    Essaye avec un ancestor du type de ton UserControl
    Si le DropDownButton est aussi un UserControl, je pensais qu'indiqué un AncestorLevel fonctionnerait mais ce n'est pas le cas.


    Je ne vois pas quoi indiquer d'autre.

  4. #4
    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
    Ce que je veux dire, c'est de mettre un ancêtre de qui se trouve plus haut dans la hiérarchie. Si tu mes Ancestor={x:Type DataGrid}, par exemple? Il devrait chercher le DataGrid qou se trouve la colonne, et celui-ci devrait avoir le bon DataContext.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2015, 10h03
  2. WPF - UserControl dynamique et Binding RelativeSource
    Par sfxzeus dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 19/11/2012, 13h59
  3. [3.0] De l'intérêt de WPF et Workflow ...
    Par margagn dans le forum Général Dotnet
    Réponses: 26
    Dernier message: 30/11/2006, 09h41
  4. Wpf - petites questions
    Par DonJR dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 05/11/2006, 11h33
  5. Documentation WPF ?
    Par NeoMan dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2006, 00h01

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