Bonjour à tous,

J'ai réalisé un UserControl qui contient une image et un textBlock. La propriété Text du textBlock est bindé sur une dépendencyProperty

La DependencyProperty
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
public static readonly DependencyProperty TextProperty =
            DependencyProperty.Register("TextProperty", typeof(string), typeof(UserItem));
La propriété est alimenté ainsi dans le code behind
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
        public string Text
        {
            get
            {
                return this.GetValue(TextProperty) as string;
            }
            set
            {
                this.SetValue(TextProperty, value);
            }
        }
Le binding
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Text="{Binding Path=TextProperty, ElementName=UserStatusBarItem, Mode=TwoWay}"
Bon tout cela marche nickel. Quand j'utilise mon UserControl avec l'attribut Text il affiche bien ce que je veux.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<statusBarItem:UserItem Text="COUCOU CA MARCHE !!"/>
Par contre si la valeur de Text est un binding cela ne fonctionne plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<statusBarItem:UserItem Text="{Binding MonText}"/>
J'ai une erreur de compilation : "Impossible de définir 'Binding' sur la propriété 'Text' de type 'UserItem'. Un 'Binding' ne peut être défini que sur un DependencyProperty d'un DependencyObject.

D'une façon plus général, je pourrais poser la question ainsi. De quel manière passe t-on une donnée bindé à un UserControl ?
Bref si quelqu'un à une idée je vous en serais très reconnaissant. Merci d'avance