Essayer de créer ma propre propriété jointe personnalisée pour un objet DependencyObject WPF n'a pas réussi à faire ce que je voulais faire, et je suis un peu inquiet de ne pas avoir complètement compris le concept WPF.AttachedProperty ne se propage pas aux enfants?
J'ai fait une classe de test très simple pour montrer où se situe mon problème. De the MSDN Documentation, je copiais
public class TestBox : TextBox
{
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
"IsBubbleSource",
typeof(Boolean),
typeof(TestBox)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
return (Boolean)element.GetValue(IsBubbleSourceProperty);
}
public Boolean IsBubbleSource
{
get
{
return (Boolean)GetValue(IsBubbleSourceProperty);
}
set
{
SetValue(IsBubbleSourceProperty, value);
}
}
}
Maintenant, plaçant mon nouveau et funky TextBox dans une grille comme celui-ci
<Grid vbs:TestBox.IsBubbleSource="true">
<vbs:TestBox x:Name="Test" Text="Test" >
</vbs:TestBox>
</Grid>
Je pensais chaque enfant qui ne se définit pas la propriété IsBubbleSource
à « hériter » à partir sa grille parentale. Ça ne fait pas ça; un MessageBox.Show(Test.IsBubbleSource.ToString())
montre "faux". La propriété attachée est définie sur true. J'ai vérifié cela en utilisant un gestionnaire d'événement OnPropertyChanged. Ai-je manqué quelque chose?
Merci!
Oui, c'est tout. Merci! Je me demande à quoi ils servent s'ils ne sont pas hérités ... – Jens