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

Silverlight Discussion :

[Silverlight 3]DataTemplate propriété dynamique


Sujet :

Silverlight

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut [Silverlight 3]DataTemplate propriété dynamique
    Bonjour j'ai un problème lors de l'utilisation d'un datatemplate.
    Je m'explique j'ai une collection de "Room" que je passe à un ItemsControl.
    J'associe un datatemplate à ce itemcontrol pour afficher les chambres à l'écran.
    Par contre j'ai une valeur(Height) qui n'est pas contenue dans l'objet "Room" que je voudrais appliqué à ce datatemplate comment puis je l'appeler??

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <DataTemplate x:Key="RoomTpl">
                <Border Background="Black">
                    <Controls:WrapPanel Height="????">
                        <ToolTipService.ToolTip>
                            <ToolTip Content="{Binding Path=Description}"/>
                        </ToolTipService.ToolTip>
                        <TextBlock Text="{Binding Path=Number}"/>
                    </Controls:WrapPanel>
                </Border>
    </DataTemplate>

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    <ItemsControl Name="_itcRooms" ItemTemplate="{StaticResource RoomTpl}"/>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Archeone Voir le message
    .
    Par contre j'ai une valeur(Height) qui n'est pas contenue dans l'objet "Room" que je voudrais appliqué à ce datatemplate comment puis je l'appeler??
    Un peu flou. Est ce que le Height que tu veux utiliser est celui d'un élément de ton Datatemplate..

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    Le Height que je veux setter est celui du wrappanel dans le datatemplate(voir code).
    Néanmoins cette propriété ne peut pas être déduite de l'objet "Room".
    Je veux donc appeler une méthode en XAML ou en une propriété de mon UserControl contenant ce datatemplate.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Archeone Voir le message
    Le Height que je veut setter est celui du wrappanel dans le datatemplate(voir code).
    Néanmoins cette propriété ne peut être déduite de l'objet "Room".
    Je veux donc appeler une méthode en XAML ou en une propriété de mon UserControl contenant ce datatemplate.
    Le height doit être déduit à partir de quoi ?


    d'une propriété de ton Room ou de ton usercontrol ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    De mon UserControl

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Archeone Voir le message
    De mon UserControl
    Là je crois je crois que ce sera compliqué vu que t'utilise un binding ayant pour contexte de donnée ton objet Room alors que le Height doit être binder sur une proprieté de ton User Control.

    Je crois qu'en créant une nouvelle classe nommée par exemple RoomWithHeight
    contenant deux proprieté Room et Height. Et là tu n'auras plus qu'a faire ça :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <DataTemplate x:Key="RoomTpl">
                <Border Background="Black">
                    <Controls:WrapPanel Height="{Binding Path=Height}">
                        <ToolTipService.ToolTip>
                            <ToolTip Content="{Binding Path=Room.Description}"/>
                        </ToolTipService.ToolTip>
                        <TextBlock Text="{Binding Path=Room.Number}"/>
                    </Controls:WrapPanel>
                </Border>
    </DataTemplate>

    Je pense que ça devrait marcher.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 156
    Points : 173
    Points
    173
    Par défaut
    Justement c'est ce que je voulais éviter.

  8. #8
    Invité
    Invité(e)
    Par défaut
    En plus un TemplateBinding ne pourra pas t'aider à résoudre le problème vu qu'on n'est pas dans un ControlTemplate..
    Bref je crois je ne vois pas une autre solution que la précedente
    Dernière modification par Invité ; 10/09/2009 à 14h36.

Discussions similaires

  1. Test constant sur propriété dynamique
    Par Fiksha dans le forum Java EE
    Réponses: 1
    Dernier message: 19/04/2011, 14h19
  2. Réponses: 8
    Dernier message: 29/12/2009, 11h52
  3. Silverlight controle pour affichage dynamique
    Par Emilien69 dans le forum Silverlight
    Réponses: 1
    Dernier message: 23/07/2009, 12h54
  4. [AJAX] propriété dynamique perdue dans une boucle FOR
    Par spidflinch dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2009, 14h01
  5. Utilisation de la tache propriété dynamique dans un DTS
    Par ninsekh dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 13/08/2007, 21h32

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