C# 在控件的哪个阶段';它可以访问继承的附加属性吗?
我有一个使用某个继承的附加属性的控件,我发现我无法在构造函数中访问该属性,这是合理的,因为在该阶段该控件不是可视化树的一部分,因此它不能继承任何附加属性C# 在控件的哪个阶段';它可以访问继承的附加属性吗?,c#,wpf,dependency-properties,attached-properties,object-lifetime,C#,Wpf,Dependency Properties,Attached Properties,Object Lifetime,我有一个使用某个继承的附加属性的控件,我发现我无法在构造函数中访问该属性,这是合理的,因为在该阶段该控件不是可视化树的一部分,因此它不能继承任何附加属性 // Constructor public MyClassName() { InitializeComponent(); MyValue value = DeclaringClass.GetMyAttachedProperty(depObj); // value == null } 当我在加载的事件期间尝试访问属性时,我能够
// Constructor
public MyClassName()
{
InitializeComponent();
MyValue value = DeclaringClass.GetMyAttachedProperty(depObj); // value == null
}
当我在加载的事件期间尝试访问属性时,我能够检索到以下值:
// Constructor
public MyClassName()
{
InitializeComponent();
Loaded += OnLoaded;
}
void OnLoaded(object sender, RoutedEventArgs e)
{
Loaded -= OnLoaded;
MyValue value = DeclaringClass.GetMyAttachedProperty(depObj); // value != null
// Do something with value
}
这就引出了我的问题-控件生命周期中最早可以访问继承的附加属性的阶段是什么?在加载的
事件上是否有更好的位置来执行此操作?最早的位置确实在加载的
事件处理程序中。您唯一的其他选择是构造函数(或道德上等价的Initialized
event),但对于依赖项属性来说,采用继承值为时过早
另请参见MSDN。最早的版本确实在加载的事件处理程序中。您唯一的其他选择是构造函数(或道德上等价的Initialized
event),但对于依赖项属性来说,采用继承值为时过早
另见MSDN