Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在控件的哪个阶段';它可以访问继承的附加属性吗?_C#_Wpf_Dependency Properties_Attached Properties_Object Lifetime - Fatal编程技术网

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