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 :

Binding TextBlock composé de Textblocks


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut Binding TextBlock composé de Textblocks
    Bonjour,

    J'aimerais que la propriété Title de ma window soit bindé à la propriété Text d'un TextBlock.

    Mais la particularité de ce TextBlock, est qu'il contient plusieurs autres TextBlocks. Le but est de pouvoir constituer une phrase entre plusieurs Binding et traductions (un Markup Extension à été créé pour traduire des termes).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Window x:Class="MaWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="{Binding Text, ElementName=tbTitle}" Height="300" Width="300">
    <TextBlock Name="tbTitle"><TextBlock Text="{Localize About, DefaultValue=About}"></TextBlock> <TextBlock Text="{Binding Source={StaticResource Details}, Path=ProductName}"></TextBlock>
    Une idée?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    voila un petit exemple pour le fun

    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
     
    <Window x:Class="mousemove_sur_canvas.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="{Binding ElementName=alpha, Path=Text}" 
            Height="412" Width="613">
        <Grid>
            <Canvas x:Name="drag_surface"  Background="CadetBlue" 
                    UIElement.GotFocus="drag_surface_GotFocus"
                    Mouse.MouseMove="drag_surface_MouseMove">
                <Rectangle x:Name="G_Elem_1" Fill="AliceBlue" Height="112" Canvas.Left="163" Canvas.Top="234" Width="177" Focusable="True" />
                <Rectangle x:Name="G_Elem_2" Fill="Red" Height="83" Canvas.Left="85" Canvas.Top="56" Width="123" />
                <Rectangle x:Name="G_Elem_3" Fill="Green" Height="86" Canvas.Left="370" Canvas.Top="70" Width="125" />
                <Button Canvas.Left="10" Canvas.Top="319" Height="45" Name="button1" Width="86" Click="button1_Click" GotFocus="button1_GotFocus">Button</Button>
                <Button Canvas.Left="10" Canvas.Top="276" Height="37" Name="button2" Width="90" Click="button2_Click">Button</Button>
            </Canvas>
            <TextBlock Name="tbTitle">
                <TextBlock Text="alpha" x:Name="alpha"/>
                <TextBlock Text="betat" x:Name="beta"/>
            </TextBlock>
        </Grid>
    </Window>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    Hélas ce n'est pas ce qu'il me faut

    Dans ton exemple tu bind le title à "alpha". Ce qui fonctionne vu que la valeur de alpha est directement en format texte.

    Ce qu'il me faut, c'est binder title à "tbTitle". Et comme sa valeur est composé d'autres TextBlock, ça ne passe pas.

    Merci quand même

    PS : Je suis curieux de savoir ce que tu fait dans ton exemple avec tous ces event au drag, click et focus des controls

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    utilise un converter, car dans tous les cas tu vas bien devoir exprimer comment est le texte

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    C'est possible d'y faire avec autre chose que des binding? Ici j'utilise un xml markup personnalisé "Localize" qui récupère la valeur localisée de la clé, dans les fichier resx.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    tu peux le faire bien entendu avec un markup specialisé qui va aller chercher la valeur de la clef dans un fichier resource ou d'utiliser le binding sur un objet particulier qui te fourni la valeur

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Par défaut
    J'ai essayé d'utiliser le markup dans le binding, mais sans succès.

    Faut-il implémenter une interface spéciale pour la classe du markup?

    En attendant je suis passé par le code behind en passant par une fonction de la classe du markup, qui me retourne la bonne valeur, mais je n'ai pas accès à toutes les fonctionnalités de celui-ci (valeur par défaut).

Discussions similaires

  1. Binding function on textblock
    Par Lionhart dans le forum C#
    Réponses: 0
    Dernier message: 09/09/2014, 15h58
  2. [Windows Phone 8] Remplissage Grid avec Binding et (TextBlock ou ListBlock)
    Par gfaye dans le forum Windows Phone
    Réponses: 4
    Dernier message: 11/02/2014, 09h06
  3. Binding d'une image sur le background d'un Textblock
    Par djmic dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 03/09/2011, 19h48
  4. Un Binding sur TextBlock qui avait l'air simple
    Par alexadvance dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 18/08/2009, 09h57
  5. [TextBlock] Probleme de binding sur du texte formaté
    Par Bruno.Chappe dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 10/05/2009, 16h03

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