如何从方法中读取Dependency属性

时间:2010-04-22 13:34:16

标签: .net wpf methods dependency-properties

XAML:

<my:Control ItemsSource="{StaticResource MySource}"  A="true" />

假设具有依赖项属性A的控件具有默认值false; 以及处理源集合的方法:

protected override void OnItemsSourceChanged(System.Collections.IEnumerable oldValue, System.Collections.IEnumerable newValue) {}

您要查看A读取其值(这是真的)。 您如何确保A已经初始化并具有给定值?

或者应该如何正确完成?

在我的情况下,A类似于AllowLateBinding ..

强制回拨可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我不确定正确性,但根据您的确切程序逻辑,这可能有效:

protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue)
{
  if (IsInitialized)
  {
     DoWork(oldValue, newValue);
  }
  else
  {
    Initialized += (sender, e) => { DoWork(oldValue, newValue); };
  }
}

答案 1 :(得分:0)

您可以通过在DependencyProperty的定义中提供默认值来执行此操作,也可以在类构造函数中设置默认值。

注册依赖项属性时,可以指定一个提供默认值的PropertyMetadata对象。

例如,查看DependencyProperty.Register方法。