Binding en paramètre d'un UserControl
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:
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:
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:
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:
1 2
|
<statusBarItem:UserItem Text="COUCOU CA MARCHE !!"/> |
Par contre si la valeur de Text est un binding cela ne fonctionne plus.
Code:
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