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 :

Converter ItemsCountToVisible RibbonGroup


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut Converter ItemsCountToVisible RibbonGroup
    Bonjour,
    Après avoir pu expérimenter le fonctionnement des converters en utilisant le BooleanToVisibility, je souhaiterais maintenant implémenter mon propre converter qui, pour un RibbonGroup, renvoie la visibilité en fonction du fait qu'il contienne des boutons visibles ou non.

    Voici le code de mon converter:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     [ValueConversion(typeof(Collection<IRibbonControl>), typeof(String))]
        class RibbonControlCollectionVisibilityConverter : IValueConverter
        {
            #region IValueConverter Members
     
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                Boolean bVisible = false;
                foreach (var item in (Collection<IRibbonControl>)value)
                {
                    if (item.GetType().Name == "RibbonButton")
                    {
                        if (((RibbonButton)item).Visibility == Visibility.Visible)
                        {
                            bVisible = true;
                        }   
                    }
                    else if (item.GetType().Name == "RibbonSplitButton")    
                    {
                       if (((RibbonSplitButton)item).Visibility == Visibility.Visible)
                        {
                            bVisible = true;
                        }    
                    }
                }
                if (bVisible)
                {
                    return Visibility.Visible;
                }
                else
                {
                    return Visibility.Collapsed;
                }
            }
     
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
     
            #endregion
        }
    Et dans mon XAML:
    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
    <ms:RibbonGroup x:Name="GroupTest" Visibility="{Binding Items, RelativeSource={x:Static RelativeSource.Self}, Converter={StaticResource convItemsToVisibility}}">
                        <ms:RibbonGroup.Command>
                            <ms:RibbonCommand LabelTitle="Command du Groupe"/>
                        </ms:RibbonGroup.Command>
                        <ms:RibbonGroup.GroupSizeDefinitions>
                            <ms:RibbonGroupSizeDefinitionCollection>
                                <ms:RibbonGroupSizeDefinition>
                                    <ms:RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True"/>
                                </ms:RibbonGroupSizeDefinition>
                            </ms:RibbonGroupSizeDefinitionCollection>
                        </ms:RibbonGroup.GroupSizeDefinitions>
                        <ms:RibbonButton Visibility="{Binding IsEnabled, RelativeSource={x:Static RelativeSource.Self}, Converter={StaticResource convVisibility}}">
                            <ms:RibbonButton.Command>
                                <ms:RibbonCommand LabelTitle="Test" LargeImageSource="Icone\I_DOCUMENT_MANQUANT.BMP" CanExecute="RibbonCommandEntreprise_CanExecute" />
                            </ms:RibbonButton.Command>
                        </ms:RibbonButton>
    </ms:RibbonGroup>
    Ici J'ai simplifié pour ne mettre qu'un bouton dans le Group mais le but serait de pouvoir ne rendre visible le Group que si l'un des boutons au moins est visible. Mais là ça ne fonctionne pas et je ne trouve pas pourquoi.
    Quelqu'un peut-il m'aider?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    Désolé, je suis un gros boulet, il faut mettre Controls à la place d'Items dans le XAML.
    Par contre tous mes groups sont Collapsed maintenant........

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    A priori, cela ne fonctionne pas car au moment du test les boutons ne sont pas encore affichés (donc collapsed), j'ai essayé en testant le IsEnabled mais c'est le même problème.....

Discussions similaires

  1. Convertion char vers int
    Par barthelv dans le forum C
    Réponses: 8
    Dernier message: 08/10/2011, 21h45
  2. convertion d'une chaine binaire
    Par Mister dans le forum C
    Réponses: 3
    Dernier message: 03/10/2003, 22h39
  3. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  4. [Debutant] [Date] convertion date
    Par BenoitM dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 17/04/2003, 14h55
  5. Convertion de type VARIANT à type CString
    Par j_grue dans le forum MFC
    Réponses: 2
    Dernier message: 07/11/2002, 14h18

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