Я не совсем уверен, правильно ли я понял это или нет, то, что я прочитал, похоже, согласуется с тем, что я пытаюсь сделать, однако, похоже, это не работает.
Если я добавлю дополнительного владельца к свойству зависимостей класса, всякий раз, когда изменяется класс orig dp, изменение должно передаваться дополнительному владельцу, правильно?
У меня есть пользовательский элемент управления, для которого я хочу установить свойство, а затем для определенных объектов, находящихся в шаблоне данных пользовательского элемента управления, наследовать это значение свойства.
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));
}
}
Но если я назначу DependencyPropertyDescriptor для обоих свойств, он срабатывает только для Class1, а Class2 не изменяется.
Я что-то упустил в моем понимании?
UPDATE
После некоторого тестирования я даже не уверен, считается ли мой дочерний элемент управления дочерним элементом в логическом или визуальном дереве. Я думаю, что это так, но отсутствие успеха заставляет меня верить в обратное.
Существует множество class2, которые существуют в наблюдаемой коллекции class1. Для меня это делает их детьми класса 1? Но даже если я использую RegisterAttach на class2, и устанавливаю свойство в class1, это, кажется, не имеет никакого эффекта?