如何订阅DependencyProperty更改通知

时间:2012-08-10 17:49:09

标签: c# wpf

我有一个静态依赖属性,我需要知道它的值何时发生变化,以便我可以调用回调并更新其他值。现在我不能这样做,因为回调不是静态的,而且依赖关系改变事件是。

当LostFocus事件触发时,我现在正在使用它,但我更愿意在发生更改时将其连接起来。

2 个答案:

答案 0 :(得分:16)

依赖项属性更改通知传入对象。您可以使用它来映射到非静态变量:

static void OnThePropChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
     YourClass instance = (YourClass)obj;
     instance.ThePropChanged(args); // Call non-static

     // Alternatively, you can just call the callback directly:
     // instance.CallbackMethod(...)
}

// This is a non-static version of the dep. property changed event
void ThePropChanged(DependencyPropertyChangedEventArgs args)
{
      // Raise your callback here... 
}

答案 1 :(得分:1)

您可能还想在DependencyProperty和“其他地方”之间设置绑定,如果这只是在其他地方获取值。