Почему значение свойства DataContext наследуется дочерними элементами, а не другими? - PullRequest
0 голосов
/ 24 января 2020

Я изучаю wpf, и у меня возникает глупый вопрос.

Когда мы устанавливаем DataContext свойство родителя, оно наследуется его потомками, которые могут использовать ту же привязку, но почему другие свойства не получают по наследству?

Да, имеет смысл, что если мы устанавливаем имя родителя (которое является свойством) в значение xyz, имя ребенка не устанавливается в то же самое, что также имеет то же свойство, но как получается, что это правило отличается для свойства DataContext?

1 Ответ

2 голосов
/ 24 января 2020

Значение свойства DataContext наследуется, потому что это явно запрашивается установкой FrameworkPropertyMetadataOptions.Inherits при регистрации свойства.

Из Ссылочного источника :

public static readonly DependencyProperty DataContextProperty =
    DependencyProperty.Register(
        "DataContext",
        typeof(object),
        _typeofThis,
        new FrameworkPropertyMetadata(null,
            FrameworkPropertyMetadataOptions.Inherits,
            new PropertyChangedCallback(OnDataContextChanged)));

См. Также Информация о свойстве зависимости в Замечаниях :

Информация о свойстве зависимости

Identifier field                   DataContextProperty
Metadata properties set to true    Inherits
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...