在我看来,NameScope.NameScope附加属性是设置FrameworkPropertyMetadataOptions.Inherits
的理想候选者,以便它由子项继承。为什么不是这样的呢?
这肯定会让程序员更容易获得特定对象的有效NameScope
,甚至可以允许类似
<Element NameScope.NameScope="{Binding Path=Target.(NameScope.NameScope), ...}" ... />
在Xaml中用于镜像另一个对象的NameScope
。虽然我认为这会使代码更难以遵循,但它可能会用于经常与可视树分离的内容,例如ContextMenu
。
是否可能因为附加属性是通用的(非FrameworkElement
绑定)?在source中,附加财产没有注册PropertyMetadata
。