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] Binding TabControl Personalisé


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut [WPF] Binding TabControl Personalisé
    Bonsoir à tous,

    j'ai un petit souci de binding sur une classe héritée de TabControl (et une autre de TabItem).

    Dans ma classe héritée de TabItem, j'ai ceci entre autre : (Dans le ControlTemplate)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <ContentPresenter Content="{TemplateBinding Icon}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <Border Margin="2,0,2,0" Grid.Column="1">
                    <ContentPresenter Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}"
    									    ContentSource="Header" HorizontalAlignment="Stretch" VerticalAlignment="Center" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
    									    Margin="{TemplateBinding Padding}" RecognizesAccessKey="True"/>
                                    </Border>
                                    <Button x:Name="PART_CloseButton" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center"
    								Margin="5,0,5,0" Style="{StaticResource CloseButtonStyle}" Visibility="Visible" />
    Et quand je fait ceci en xaml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Controls:BrowserTabControl Grid.Row="2" Grid.Column="0" ItemsSource="{Binding List}" >
            <Controls:BrowserTabControl.ItemContainerStyle>
                <Style TargetType="{x:Type Controls:BrowserTabItem}">
                    <Setter Property="Icon" Value="{Binding Title}"/>
                </Style>
            </Controls:BrowserTabControl.ItemContainerStyle>
            <Controls:BrowserTabControl.ContentTemplate>
                    <DataTemplate>
                        <ContentPresenter Content="{Binding Content}" />
                    </DataTemplate>
                </Controls:BrowserTabControl.ContentTemplate>
            </Controls:BrowserTabControl>
    Lorsque je met ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Controls:BrowserTabControl.ItemContainerStyle>
                <Style TargetType="{x:Type Controls:BrowserTabItem}">
                    <Setter Property="Icon" Value="{Binding Title}"/>
                </Style>
            </Controls:BrowserTabControl.ItemContainerStyle>
    Je n'ai plus le style que j'avais pour BrowserTabItem, j'ai de retour le style classique des TabItems.

    Merci d'avance.

    Cordialement,
    NeoKript

  2. #2
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,

    est-ce que tu as surchargé la méthode GetContainerForItemOverride ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Citation Envoyé par MetalGeek Voir le message
    Salut,

    est-ce que tu as surchargé la méthode GetContainerForItemOverride ?
    Salut, oui je l'ai surchargée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            protected override bool IsItemItsOwnContainerOverride(object Item)
            {
     
                return (Item is BrowserTabItem);
     
            }
     
            protected override DependencyObject GetContainerForItemOverride()
            {
     
                return (new BrowserTabItem());
     
            }
    J'avais trouvé la solution sur le site de Thomas Lebrun. Le problème intervient uniquement lorsque j'essaie de binder le champ Icon .. Le style redevient celui de base. Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/01/2008, 09h18
  2. [WPF] Binding et type custom
    Par sehshe dans le forum Framework .NET
    Réponses: 6
    Dernier message: 09/01/2008, 10h19
  3. wpf binding avec un dataset sans listbox
    Par ZashOne dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 25/12/2007, 19h09
  4. [WPF][Binding] Comment binder un fichier XML sur un treeview?
    Par bakonu dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 26/11/2007, 17h09
  5. [WPF] Binding sur app.config
    Par despeludo dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 24/10/2007, 22h56

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