我有一个静态依赖属性,我需要知道它的值何时发生变化,以便我可以调用回调并更新其他值。现在我不能这样做,因为回调不是静态的,而且依赖关系改变事件是。
当LostFocus事件触发时,我现在正在使用它,但我更愿意在发生更改时将其连接起来。
答案 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和“其他地方”之间设置绑定,如果这只是在其他地方获取值。