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] dans un objet en resource


Sujet :

Windows Presentation Foundation

  1. #1
    Membre expérimenté
    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
    Points : 1 313
    Points
    1 313
    Par défaut [Binding] dans un objet en resource
    Bonjour j'ai le code suivant
    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
     public class TestObject : DependencyObject
        {
            public TestObject()
            {
                int vv = 0;
            }
     
            #region Test
            public object Test
            {
                get { return (object)GetValue(TestProperty); }
                set { SetValue(TestProperty, value); }
            }
     
            // Using a DependencyProperty as the backing store for Test.  This enables animation, styling, binding, etc...
            public static readonly DependencyProperty TestProperty =
                DependencyProperty.Register(
                    "Test",
                    typeof(object),
                    typeof(TestObject),
                // new PropertyMetadata(null)
                 new FrameworkPropertyMetadata(null, new PropertyChangedCallback(TestChanged))
                // new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender , new PropertyChangedCallback(TestChanged))
                    );
     
            private static void TestChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                TestObject control = d as TestObject;
            }
            #endregion
        }
    et j'aimerais faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <Window.Resources>
            <local:TestObject x:Key="alpha"
                              Test="{Binding .}" />
            <local:TestObject x:Key="beta"
                              Test="{Binding ., ElementName=win}" />
        </Window.Resources>
    c'est a dire binder le datacontext de ma fenetre sur la dp Test de mon TestObject
    malheureusement il semble que l'objet ne soit pas cree dans la structure donc il ne peut pas acceder a la structure globale

    y'a t'il une solution pour contourner cela ?
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Il y aurait un souci ?
    Voici un code fonctionnel pour "alpha" et "beta":
    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
     
     
    <Window x:Class="WpfImageIntoXML.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           xmlns:local="clr-namespace:WpfImageIntoXML" 
            Title="Window1" Height="300" Width="300"
            DataContext="{Binding  Source={StaticResource alpha}}"
            >
        <Window.Resources>
            <local:TestObject x:Key="alpha"
                              TestA="{Binding Path=TestA}" />
            <local:TestObject x:Key="beta"
                              TestA="{Binding ElementName=win}" />
        </Window.Resources>
        <StackPanel >
            <Button Content="{Binding Path=.}"/>
        </StackPanel>
    </Window>
    Ce que tu peux faire aussi en code behind .cs:

    code...

  3. #3
    Membre expérimenté
    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
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait ce que je veux faire c'est avoir par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       public MainWindow()
            {
                InitializeComponent();
                this.DataContext = new Personne { Nom = "le nom", Prenom = "le prenom" };
            }
    et que mon objet alpha et beta point dessus sur le binding
    seulement j'ai ses erreurs
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpressionath=.; DataItem=null; target element is 'TestObject' (HashCode=24412946); target property is 'Test' (type 'Object')
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpressionath=.; DataItem=null; target element is 'TestObject' (HashCode=56608836); target property is 'Test' (type 'Object')
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  4. #4
    Membre expérimenté
    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
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait ce que je veux faire c'est avoir par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       public MainWindow()
            {
                InitializeComponent();
                this.DataContext = new Personne { Nom = "le nom", Prenom = "le prenom" };
            }
    et que mon objet alpha et beta point dessus sur le binding
    seulement j'ai ses erreurs
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpressionath=.; DataItem=null; target element is 'TestObject' (HashCode=24412946); target property is 'Test' (type 'Object')
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpressionath=.; DataItem=null; target element is 'TestObject' (HashCode=56608836); target property is 'Test' (type 'Object')
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

Discussions similaires

  1. Binding listView et objet d'une classe dans une autre classe
    Par warmy dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 09/06/2009, 14h26
  2. ListViewItem.MouseDoubleClick va chercher l'événement dans l'objet bindé
    Par strat0 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 06/05/2009, 15h53
  3. Réponses: 3
    Dernier message: 26/10/2004, 07h31
  4. Réponses: 3
    Dernier message: 05/05/2004, 00h39
  5. TWebBrowser créé dans un objet.
    Par Speed41 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2003, 10h34

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