Je ne suis pas sûr d'avoir la bonne compréhension de cela ou pas, ce que j'ai lu semble être d'accord avec ce que j'essaie de faire, mais il ne semble pas travailler.Utilisation des propriétés de dépendance dans wpf
Si j'ajoute un propriétaire supplémentaire à une propriété de dépendance d'une classe, à chaque fois que la classe d'origine dp change, la modification doit être propagée au propriétaire supplémentaire, correct? Ce que j'ai est un contrôle personnalisé, sur lequel je veux définir une propriété, puis sur certains objets qui sont dans le modèle de données de contrôle personnalisé hériter cette valeur de propriété.
public class Class1: DependencyObject{ public static readonly DependencyProperty LongDayHeadersProperty; public bool LongDayHeaders { get { return (bool)GetValue(LongDayHeadersProperty); } set { SetValue(LongDayHeadersProperty, value); } } static Class1(){ LongDayHeadersProperty = DependencyProperty.Register("LongDayHeaders", typeof(bool), typeof(Class1), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.Inherits)); } } public class Class2: DependecyObject{ public static readonly DependencyProperty LongDayHeadersProperty; public bool LongDayHeaders{ get{ return(bool)GetValue(LongDayHeadersProperty); } set{ SetValue(LongDayHeadersProperty, value); } } static Class2(){ LongDayHeadersProperty = Class1.LongDayHeadersProperty.AddOwner(typeof(Class2)); } }
Mais si j'attribue un DependencyPropertyDescriptor aux deux propriétés, il ne se déclenche que pour les classes 1 et Classe2 ne change pas.
Ai-je manqué quelque chose dans ma compréhension?
MISE À JOUR
Après quelques tests, je ne suis même pas sûr si mon contrôle enfant est considéré comme un contrôle enfant dans l'arbre logique ou visuel. Je pense que c'est le cas, mais le manque de succès me conduit à croire le contraire.
Il existe de nombreux class2 qui existent dans une collection observable de classe1. Cela, à moi, les rend les enfants de classe1? Mais même si j'utilise RegisterAttach sur class2 et que je place la propriété dans class1, cela ne semble pas avoir d'effet?
RegisterAttached fait la propriété de la classe 2, classe 1. applyable sur donc: Mais je je veux juste aller –
Psytronic
que sténographie n'est pas possible –